我的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),图标来自谷歌图标包,最大的资源是xxhdpi。这是问题吗?
更新:当我使用?android:attr / actionBarSize时,上述链接的解决方法确实有效。但是,这是唯一的方法吗?看起来有点不对,需要这样的解决方法来处理像这样的新闪亮组件,甚至更多,以便解决方法需要一个组件的属性值替换为新组件。
答案 0 :(得分:3)
尝试使用:
android:height="?android:attr/actionBarSize"
用于工具栏。
答案 1 :(得分:1)
在工具栏样式中添加:
<item name="maxButtonHeight">?attr/actionBarSize</item>
答案 2 :(得分:0)
我遇到了与android.support.v7.widget.Toolbar相同的问题。
我的解决方案:
将工具栏放入具有工具栏所需高度的RelativeLayout。将工具栏layout_height设置为“wrap_content”并将其与垂直中心对齐。我希望它有所帮助。
<RelativeLayout
android:id="@+id/main_toolbar_relative_layout"
android:layout_width="match_parent"
android:layout_height="50dp"
>
<android.support.v7.widget.Toolbar
android:id="@+id/main_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
>
</android.support.v7.widget.Toolbar>
</RelativeLayout>