昨天我切换到新的支持库26,我也不得不将已弃用的AppBarActivity更改为AppCompatActivity,因为这不再存在。切换到支持库26和AppBarActivity到AppCompatActivity后挤压工具栏菜单项目
我遇到了与下面链接中所述相同的问题,但“清理”或“重建”不能解决问题。 Why option menu items squeezed if I use support library 26?
我的所有图标都在hdpi和xhdpi中。一些也在mdpi和ldpi ...
那么为什么我的工具栏图标被挤压?
这是我在我所有的布局与以往所有支持库的工作使用的代码(我总是使用最新版本!):
<android.support.design.widget.AppBarLayout
android:id="@+id/myAppBar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/my_awesome_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize" />
</android.support.design.widget.AppBarLayout>
我所有的图标被定义为ATTR所以我能够提供明亮和黑暗的版本。
<item
android:id="@+id/action_logbook"
android:icon="?attr/icon_book"
android:orderInCategory="100"
android:title="@string/logbook"
yourapp:showAsAction="ifRoom"/>
这是icons.xml的ATTR
<attr name="icon_book" format="reference"/>
这是它提供了实际的图标的样式:
<style name="MyBaseThemeLight" parent="Theme.AppCompat.Light.NoActionBar">
<item name="icon_book">@drawable/icon_book_white</item>
</style>
UPDATE: 它工作时,我直接把一个ImageView的在工具栏:
<android.support.design.widget.AppBarLayout
android:id="@+id/myAppBar"
style="@style/myAppBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/my_awesome_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="?attr/bt_expenses" />
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
UDATE 2: 对我来说版本的代码更改ActionMenuItemView的26似乎是因为它没有调整图标的大小以保持宽度和高度相等:
请参阅: public void setIcon(Drawable icon)
...
很高兴看到此问题在26.0.1中仍未解决。 Google工作不错! – stefan
@stefan我已经重新编译了appcompat-v7库并修复了这个问题。我在这里附上了AAR文件:https://issuetracker.google.com/issues/64207386#comment19 – Gianlu
我已经看到了,但我会等到它正式修复。我不需要任何新的支持库。我只想保持最新状态,这在使用Android/Google时总是一件坏事。 无论如何,你做得很好!谢谢! – stefan