如何在 Android 中将 Activity 的操作栏标题居中?
对于这个特定主题,我已经看到很多关于 SO 的问题。每个答案都会回到“使用自定义 View ”和拥有自己的工具栏。
我找到了一个无需创建自定义 View 即可工作的解决方案。
最佳答案
在您的 Activity
中使用此方法:
private void centerTitle() {
ArrayList<View> textViews = new ArrayList<>();
getWindow().getDecorView().findViewsWithText(textViews, getTitle(), View.FIND_VIEWS_WITH_TEXT);
if(textViews.size() > 0) {
AppCompatTextView appCompatTextView = null;
if(textViews.size() == 1) {
appCompatTextView = (AppCompatTextView) textViews.get(0);
} else {
for(View v : textViews) {
if(v.getParent() instanceof Toolbar) {
appCompatTextView = (AppCompatTextView) v;
break;
}
}
}
if(appCompatTextView != null) {
ViewGroup.LayoutParams params = appCompatTextView.getLayoutParams();
params.width = ViewGroup.LayoutParams.MATCH_PARENT;
appCompatTextView.setLayoutParams(params);
appCompatTextView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
}
}
}
然后,只需在您的 onCreate()
中调用它:
centerTitle();
就是这样!!!
关于android - 中心操作栏标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42465386/