Bordless按钮与自定义背景按钮

时间:2017-11-03 14:58:09

标签: android material-design

Min sdk:19。 我希望下一个按钮(屏幕边缘没有任何边距的按钮)带有重点背景色accent=#ff9800

enter image description here

我尝试了什么?

<Button
            style="@style/Button.Default"
            android:id="@+id/next"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="@string/continue_text"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"/>

<style name="Button.Default" parent="Widget.AppCompat.Button.Borderless.Colored">
        <item name="colorButtonNormal">@color/accent</item>
        <item name="android:textColor">@android:color/white</item>
</style>

但是得到:

enter image description here

还可以在炫耀点击时使用:

enter image description here

我如何解决我的问题?

2 个答案:

答案 0 :(得分:0)

也许,您应该在AppTheme中定义默认按钮主题,如此

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:buttonStyle">@style/Button.Default</item>
</style>

然后代替style="@style/Button.Default"使用android:theme="@style/Button.Default"

答案 1 :(得分:0)

在你的按钮中:

<Button
        style="@style/Button.Default"
        android:layout_marginEnd="0dp"
        android:layout_marginStart="0dp"
        android:layout_marginBottom="0dp"
        android:id="@+id/next"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="@string/continue_text"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"/>

以你的风格:

<style name="Button.Default" parent="Widget.AppCompat.Button.Borderless.Colored">
    <item name="android:background">@drawable/background_button</item>
    <item name="android:textColor">@android:color/white</item>
</style>

制作一个新的drawable background_button.xml

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:color="@color/colorPrimary"
    tools:targetApi="lollipop">
    <item android:id="@android:id/mask">
        <shape android:shape="rectangle">
            <solid android:color="@color/colorPrimary" />
        </shape>
    </item>
    <item
        android:id="@android:id/background"
        android:drawable="@color/colorAccent" />
</ripple>

使用您想要的任何颜色作为纹波颜色代替@color/colorPrimary