Android支持工具栏:调整大小不会重新调整菜单项

时间:2014-11-17 10:34:04

标签: android android-support-library

我尝试在方向更改时调整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(...)

任何人都知道更好的方法来调整工具栏的大小,还是需要使用解决方法来删除和读取工具栏到视图堆栈?

1 个答案:

答案 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);
    }
}