установка высоты панели инструментов программно не работает на Android 4.4 - PullRequest
3 голосов
/ 29 июня 2019

Я пытаюсь программно изменить высоту моей панели инструментов:

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 высота панели инструментов при этом уменьшается до нуля.

Кто-нибудь знает почему?

1 Ответ

3 голосов
/ 11 июля 2019

В вашем устройстве 4.4 displayWidth - это целочисленный формат, и он <1024, затем <code>(displayWidth / 1024) * 580 = 0.
Поэтому она делает вашу панель инструментов невидимой.
Решение заключается в том, что вы можете изменить displayWidth на float (или double) или изменить оператор на displayWidth * 580 / 1024

...