为什么无法在 toolbarStyle 的主题中为工具栏设置 layout_height 和 layout_width?
Why is it not possible to set layout_height and layout_width for toolbar in theme with toolbarStyle?
挑战:我正在尝试通过默认工具栏主题为工具栏设置 layout_height 和 layout_width,如下所示:
在我的主题中我有:
<item name="toolbarStyle">@style/Toolbar</item>
和工具栏样式:
<style name="Toolbar" parent="Widget.AppCompat.Toolbar">
<item name="android:background">@color/colorBackground</item>
<item name="android:titleTextColor">@color/colorTextToolbar</item>
<item name="android:layout_height">?attr/actionBarSize</item>
<item name="android:layout_width">match_parent</item>
</style>
问题:layout_height
和 layout_width
没有从我的主题中删除,当我从我的工具栏中删除 android:layout_height
和 android:layout_width
时,工具栏完全消失并显示错误说缺少这些属性。虽然 android:background
和 android:titleTextColor
实际上是从我的主题中提取的。
我尝试了什么:Here 我读到我必须在顶部添加 <resources xmlns:android="http://schemas.android.com/apk/res/android">
。这实际上没有效果,顶部已经有 <resources xmlns:tools="http://schemas.android.com/tools">
。
您知道为什么这不起作用吗?这可能是由于 inflater 如何从样式的优先级获取属性?
更新:似乎toolbarStyle 不允许设置工具栏的高度和宽度。我想这可能在 android 文档中的某处定义,但我无法找到确切位置。当我点击工具栏对象时,我发现
public Toolbar(@NonNull Context context, @Nullable AttributeSet attrs) {
this(context, attrs, R.attr.toolbarStyle);
}
作为 Constructur,所以它需要 R.attr.toolbarStyleR.attr.toolbarStyle
作为参数,当我查看 toolbarStyle 属性时,我只能看到
<attr format="reference" name="toolbarStyle"/>
,这并没有让我知道“toolbarStyle”的真正设置。有办法找出来吗?
您需要将样式应用于 Toolbar
:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
style="@style/Toolbar"
android:background="@android:color/transparent" />
挑战:我正在尝试通过默认工具栏主题为工具栏设置 layout_height 和 layout_width,如下所示:
在我的主题中我有:
<item name="toolbarStyle">@style/Toolbar</item>
和工具栏样式:
<style name="Toolbar" parent="Widget.AppCompat.Toolbar">
<item name="android:background">@color/colorBackground</item>
<item name="android:titleTextColor">@color/colorTextToolbar</item>
<item name="android:layout_height">?attr/actionBarSize</item>
<item name="android:layout_width">match_parent</item>
</style>
问题:layout_height
和 layout_width
没有从我的主题中删除,当我从我的工具栏中删除 android:layout_height
和 android:layout_width
时,工具栏完全消失并显示错误说缺少这些属性。虽然 android:background
和 android:titleTextColor
实际上是从我的主题中提取的。
我尝试了什么:Here 我读到我必须在顶部添加 <resources xmlns:android="http://schemas.android.com/apk/res/android">
。这实际上没有效果,顶部已经有 <resources xmlns:tools="http://schemas.android.com/tools">
。
您知道为什么这不起作用吗?这可能是由于 inflater 如何从样式的优先级获取属性?
更新:似乎toolbarStyle 不允许设置工具栏的高度和宽度。我想这可能在 android 文档中的某处定义,但我无法找到确切位置。当我点击工具栏对象时,我发现
public Toolbar(@NonNull Context context, @Nullable AttributeSet attrs) {
this(context, attrs, R.attr.toolbarStyle);
}
作为 Constructur,所以它需要 R.attr.toolbarStyleR.attr.toolbarStyle
作为参数,当我查看 toolbarStyle 属性时,我只能看到
<attr format="reference" name="toolbarStyle"/>
,这并没有让我知道“toolbarStyle”的真正设置。有办法找出来吗?
您需要将样式应用于 Toolbar
:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
style="@style/Toolbar"
android:background="@android:color/transparent" />