安卓支持工具栏 : Resizing won't realign menu items

标签 android android-support-library

我尝试调整方向更改时 Activity 的 Android 支持工具栏的大小,因为它在横向模式下太大。它不会在我使用时自动调整大小

android:configChanges="orientation|screenSize"

关于我的 Activity ,因此不会重新创建 Activity 。 工具栏 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(...):

任何人都知道调整工具栏大小的更好方法,或者我是否需要使用解决方法,例如删除工具栏并将其读取到 View 堆栈?

最佳答案

只需为工具栏调用 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);
    }
}

关于安卓支持工具栏 : Resizing won't realign menu items,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26970676/

相关文章:

android - 在 ListView 中搜索不显示相应的项目

android - ActionBar 菜单项无法使用支持库

android - 低于21的API如何在GridLayout中使用布局权重

android - 在android中运行命令

java - 为什么 ActivityCompat.requestPermissions() 只接受 0-255 之间的整数请求码?

Android ndk r15b - Posix_memalign () 未声明的标识符

android - 如何删除饼图中的底部空间?

android - 使用 Google Fit api 时 Google Oauth 2.0 RESULT_CANCELED

android - 使用 ArrayAdapter 创建多列布局

android - CallSuper 注释如何评估重写方法是否正在调用 super 方法?