自定义/扩展Theme.MaterialComponents

时间:2018-08-31 00:54:36

标签: android material-design android-9.0-pie

我正在尝试自定义“材质”按钮(API 28),但是我似乎无法覆盖某些基本元素。这是我尝试向按钮添加样式的示例

我的style.xml文件中有

<style name="CollapsingHeaderBtn" parent="@android:style/Widget.Material.Button.Borderless.Colored">
    <item name="android:layout_margin">0dp</item>
    <item name="android:textAllCaps">false</item>
    <item name="android:textSize">14sp</item>
    <item name="android:textColor">@color/colorBlack</item>
    <item name="android:backgroundTint">@drawable/post_layout_header_design</item>
</style>

我为backgroundTint从中提取的drawable文件夹是这样设置的:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid
                android:color="#E0E0E0"/>
            <stroke
                android:width="1dp"
                android:color="#BDBDBD"/>
            <corners
                android:topLeftRadius="5dp"
                android:topRightRadius="5dp"/>
        </shape>
    </item>
</selector>

在我的清单文件中,我将该活动的主题设置为:

    <activity
        android:name=".UI.Posts"
        android:configChanges="orientation"
        android:screenOrientation="portrait"
        android:label="Activity"
        android:theme="@style/MaterialComponents"/>

我正在应用在style.xml文件中创建的主题:

<style name="MaterialComponents" parent="Theme.MaterialComponents">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

这是我要在活动的xml文档中样式化的按钮。

   <Button
        android:id="@+id/myButton"
        style="@style/CollapsingHeaderBtn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Action"
        android:textAlignment="textStart"/>

出于某些原因,某些值似乎可以正常工作,它确实删除了默认的粉红色backgroundTint,但并未将颜色替换为可绘制文件中配置的颜色。

任何关于我做错事情或与文档链接的想法(我一直在尝试在文档中找到实现此问题的正确方法,但找不到有关此信息)

0 个答案:

没有答案