Nei*_*ard 8 android android-layout android-5.0-lollipop
我有一个在XML布局中定义的AppCompatButton,我为它设置了一个主题:
android:theme="@style/CustomAccentOverlay"Run Code Online (Sandbox Code Playgroud)
我已经设定:
android:stateListAnimator="@null"Run Code Online (Sandbox Code Playgroud)
删除阴影.我有两个问题.
即使阴影未显示,按钮的高度也会扣除阴影的高度.我应该以其他方式删除阴影,或者我该如何解决这个问题?
按钮有圆角,我希望角落很锋利.我无法在按钮上设置背景,因为我想保持标准的涟漪效果,如果我设置了背景,那就消失了(至少我不知道如果设置背景怎么保持它).我试过设置
<item name="android:bottomLeftRadius">0dp</item>Run Code Online (Sandbox Code Playgroud)
以及CustomAccentOverlay主题的所有其他角落以及相应的样式,但它不起作用.如何在按钮上将拐角半径设置为零?
谢谢
Søren
使用以下代码作为Button.
<android.support.v7.widget.AppCompatButton
android:layout_width="200dp"
android:layout_height="200dp"
android:text="Button"
android:stateListAnimator="@null"
android:elevation="0dp"
android:background="@android:color/darker_gray"
android:foreground="?attr/selectableItemBackground"
/>
Run Code Online (Sandbox Code Playgroud)
我将解释这些属性.
android:elevation ="0dp"和android:stateListAnimator ="@ null".按钮没有阴影.
android:背景.将所需颜色设置为背景.它去除了圆角.
android:foreground ="?attr/selectableItemBackground".按下按钮时会产生涟漪效应.
更新1:
似乎android的:outlook属性来自API 23.对于下面的API,在drawable-v21文件夹中创建一个带有涟漪的drawable,并将其设置为按钮的背景,
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="NewApi"
android:color="@color/ripple_color">
<item android:drawable="@color/normal_state_button_background_color"/>
</ripple>
Run Code Online (Sandbox Code Playgroud)
对于pre Lollipop版本,在具有相同名称的drawable文件夹中创建一个带有选择器的drawable.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/pressed_color"
android:state_pressed="true" />
<item android:drawable="@drawable/focused_color"
android:state_focused="true" />
<item android:drawable="@drawable/normal_color" />
</selector>
Run Code Online (Sandbox Code Playgroud)