我有两种方法可以获取toolbar
TextView
并修改它。
private void setupToolbarTitle() {
mToolbarTitle = getActionBarTextView();
mToolbarTitle.setAllCaps(true);
mToolbarTitle.setGravity(Gravity.CENTER_HORIZONTAL);
}
private TextView getActionBarTextView() {
TextView titleTextView = null;
try {
Field f = toolbar.getClass().getDeclaredField("mTitleTextView");
f.setAccessible(true);
titleTextView = (TextView) f.get(toolbar);
} catch (NoSuchFieldException e) {
} catch (IllegalAccessException e) {
}
return titleTextView;
}
toolbar.xml文件:
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="@color/appMainBgLighter"
local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
local:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
setGravity
TextView
仍位于Toolbar
的左侧(setAllCaps
正常工作并将所有字母大写)。那是为什么?