我尝试在方向更改时调整Activity
的Android支持工具栏的大小,因为它在横向模式下太大了。它不会自动调整大小,因为我使用
android:configChanges="orientation|screenSize"
关于我的活动,因此活动不会被重新创建。 工具栏XML是这样的:
<android.support.v7.widget.Toolbar
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/my_awesome_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary" />
我的onConfigurationChanged()
我正在调整工具栏的大小,例如像这样:
findViewById(R.id.my_awesome_toolbar).setLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 114));
结果与预期不符。使用setSupportActionBar(toolbar);
和onCreateOptionsMenu()
填充的菜单项未正确垂直对齐,导航图标也不正常(toolbar.setNavigationIcon(...)
:
任何人都知道更好的方法来调整工具栏的大小,还是需要使用解决方法来删除和读取工具栏到视图堆栈?
答案 0 :(得分:2)
只需为工具栏调用setMinimumHeight
即可。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Toolbar tb = getActionBarToolbar();
if (tb != null) {
int size = UIUtils.calculateActionBarSize(this);
tb.setMinimumHeight(size);
ViewGroup.LayoutParams lp = tb.getLayoutParams();
lp.height = size;
tb.setLayoutParams(lp);
}
}