以编程方式设置工具栏高度在 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
我尝试以编程方式更改工具栏的高度:
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