Android工具栏在横向模式下太高

时间:2015-01-11 22:29:45

标签: android android-toolbar

我的min和target sdk是21,我没有使用支持库。

我正在使用新的工具栏小部件,通常它可以正常工作,我只是看起来很糟糕。动作图标以纵向模式居中,而横向模式中的工具栏较高,图标不居中。请看一下截图(读取行只是为了让问题更加明显):

  • 肖像:

portrait mode

  • 景观:

landscape mode

这可能看起来没什么,但是当选择动作时(如条形图左侧的“向上”箭头),结果就是可以看到下方几个像素的条带。我不喜欢它的样子。

活动本身不会管理任何配置更改。

这是我的代码:

  • 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时,上述链接的解决方法确实有效。但是,这是唯一的方法吗?看起来有点不对,需要这样的解决方法来处理像这样的新闪亮组件,甚至更多,以便解决方法需要一个组件的属性值替换为新组件。

3 个答案:

答案 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>