My min и target sdk равно 21, и я не использую библиотеку поддержки.
Я использую новый виджет панели инструментов, и, как правило, он работает, у меня просто сбой в том, как он выглядит. Значки действий центрируются в портретном режиме, тогда как панель в ландшафтном режиме выше, а значки не центрированы. Пожалуйста, взгляните на скриншоты (строки для чтения только для того, чтобы сделать проблему более заметной):
- портрет:
- пейзаж:
Это может выглядеть как ничего, но когда выбраны действия (например, стрелка "вверх" в самом левом углу панели), результат состоит в том, что полоса в несколько пикселей ниже нее видна. Мне не нравится, как он выглядит.
Активность сама не выполняет никаких изменений конфигурации.
Это мой код:
-
styles.xml:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="MyTheme" parent="android:Theme.Material.NoActionBar"> <item name="android:toolbarStyle">@style/MyToolbarStyle</item> </style> <style name="MyToolbarStyle" parent="android:Widget.Toolbar"> <item name="android:background">?android:attr/colorPrimary</item> <item name="android:elevation">2dp</item> </style> </resources>
-
Использование XML:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.test.TestActivity"> <Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content"/> </RelativeLayout>
Я попробовал испортить атрибут android: minHeight, но, установив так, скажем, 30dp, просто переместил значки еще выше, также в портретном режиме.
Я нашел это: https://code.google.com/p/android/issues/detail?id=77874 Но нет? Attr/actionBarSize...
Как, если вообще, можно ли устранить эту проблему? Телефон, на котором были сделаны скриншоты, - Nexus 6 (xxxhdpi), и значок из пакета значков google, а самым большим ресурсом является xxhdpi. Это проблема?
Обновить: обходной путь из вышеупомянутой ссылки работает, когда я использую? android: attr/actionBarSize. Но это единственный способ? Кажется, что это неправильно, нужны такие обходные пути для нового блестящего компонента, подобного этому, тем более, что обходному пути требуется значение атрибута для компонента, который будет заменен новым.