我为按钮制作了自定义样式。它完美地显示在Layout Preview中(通过Android Studio XML Preview),但是当我运行该应用程序时,该按钮没有想要的边框。
是否知道可能导致这种情况的原因?
activity_main.xml
<style name="Button.Pink" parent="Button">
<item name="android:background">@drawable/rounded_corners_button</item>
<item name="android:backgroundTint">@color/pink</item>
<item name="android:textColor">@color/white</item>
</style>
styles.xml
<Button
style="@style/Button.Pink"
android:id="@+id/btn_sale"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|start"
android:enabled="false"
android:foreground="?attr/selectableItemBackground"
android:text="@string/sale"
android:layout_marginTop="4dp"
android:layout_marginStart="4dp"
android:visibility="gone"
tools:visibility="visible" />
rounded_corners_button.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<corners android:radius="65dp" />
</shape>
</item>
</selector>
编辑: 添加渲染器的一些图片
答案 0 :(得分:2)
尝试更改此行
<style name="Button.Pink" parent="Button">
收件人
<style name="Button.Pink" parent="Widget.AppCompat.Button"> //AppCompat style to support backports.
已更新
如果您定位的是最低API 21,请尝试在支持库28中引入最新的Material按钮。
<android.support.design.button.MaterialButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sale"
app:backgroundTint="@color/colorAccent"
app:cornerRadius="50dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp" />
答案 1 :(得分:0)
也许您只是忘记删除android:visibility =“ gone”? :)))
您为什么还要使用android:backgroundTint
和android:foreground
?
也许您可以做些更简单的事情,例如
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/"
<corners android:radius="65dp" />
</shape>
还可以为其他状态创建形状,而不是创建一个选择器
答案 2 :(得分:-1)
使用以下代码,希望对您有帮助
按钮
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:textColor="#ffffff"
android:background="@drawable/rounded_corners_button"
android:text="Buttons" />
draweble中的rounded_corners_button
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item >
<shape android:shape="rectangle" >
<corners android:radius="5dip" />
<stroke android:width="1dip" android:color="#00FFFF" />
<gradient android:angle="-90" android:startColor="#8dbab3" android:endColor="#58857e" />
</shape>
</item>
</selector>