以编程方式设置工具栏高度在 android 4.4 上不起作用

setting toolbar height programmatically doesn't work on android 4.4

我尝试以编程方式更改工具栏的高度:

ViewGroup.LayoutParams params =  toolbar.getLayoutParams();
params.height = (displayWidth / 1024) * 580;
toolbar.setLayoutParams(params);
toolbar.requestLayout();

工具栏在我的xml中是这样定义的:

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appBarLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:elevation="5dp"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/bbtest"
            android:minHeight="?attr/actionBarSize"
            android:longClickable="false">
        </android.support.v7.widget.Toolbar>
    </android.support.design.widget.AppBarLayout>

在 android 8.0 上,这很有魅力。但是在我的 android 4.4.2 平板电脑上,执行此操作时工具栏的高度会降低为零。

有人知道为什么吗?

在您的 4.4 设备中,displayWidth 是整数格式并且它 < 1024 然后 (displayWidth / 1024) * 580 = 0
因此,它使您的工具栏不可见。
解决方案是您可以将 displayWidth 更改为浮动(或双精度)或将运算符更改为 displayWidth * 580 / 1024