Material 设计没有阴影的按钮
Material Design Button without Shadow
我最近开始 android 开发,我有点挣扎。
我阅读了有关创建可绘制对象等的不同文章和教程。
现状
我创建了以下按钮:
使用以下代码:
<android.support.v7.widget.AppCompatButton
android:id="@+id/login_btn_facebook"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:drawableStart="@drawable/ic_btn_login_facebook"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:text="Continue with Facebook"
android:textColor="#fff"
app:backgroundTint="#3b5998"/>
<android.support.v7.widget.AppCompatButton
android:id="@+id/login_btn_google"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:drawableStart="@drawable/ic_btn_login_google"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:text="Continue with Google"
app:backgroundTint="#ffffff" />
现在我实际上只需要一个小改动:
我不想有海拔。我希望按钮是"flat",并且只在点击时显示阴影效果。
有没有简单的方法可以做到这一点?
已经谢谢你了!
更新:
我需要将 API 级别 19 作为最低 SDK 版本。
您有两种选择:
- 通过向 XML 按钮添加 XML 属性:
试试这个:android:stateListAnimator="@null"
- 通过添加另一个 XML 属性,如果以前的替代方法不起作用:
根据 this 将此 style="?android:attr/borderlessButtonStyle"
添加到您的 XML 按钮。
如果它不起作用,请告诉我!
在布局中添加以下属性 XML 以移除阴影:
android:elevation="0dp"
android:translationZ="0dp"
这将使您的布局看起来像:
<android.support.v7.widget.AppCompatButton
android:id="@+id/login_btn_facebook"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:drawableStart="@drawable/ic_btn_login_facebook"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:elevation="0dp"
android:translationZ="0dp"
android:text="Continue with Facebook"
android:textColor="#fff"
app:backgroundTint="#3b5998"/>
<android.support.v7.widget.AppCompatButton
android:id="@+id/login_btn_google"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:drawableStart="@drawable/ic_btn_login_google"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:elevation="0dp"
android:translationZ="0dp"
android:text="Continue with Google"
app:backgroundTint="#ffffff" />
阅读 here 了解更多信息。
我最近开始 android 开发,我有点挣扎。 我阅读了有关创建可绘制对象等的不同文章和教程。
现状
我创建了以下按钮:
使用以下代码:
<android.support.v7.widget.AppCompatButton
android:id="@+id/login_btn_facebook"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:drawableStart="@drawable/ic_btn_login_facebook"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:text="Continue with Facebook"
android:textColor="#fff"
app:backgroundTint="#3b5998"/>
<android.support.v7.widget.AppCompatButton
android:id="@+id/login_btn_google"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:drawableStart="@drawable/ic_btn_login_google"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:text="Continue with Google"
app:backgroundTint="#ffffff" />
现在我实际上只需要一个小改动:
我不想有海拔。我希望按钮是"flat",并且只在点击时显示阴影效果。
有没有简单的方法可以做到这一点?
已经谢谢你了!
更新:
我需要将 API 级别 19 作为最低 SDK 版本。
您有两种选择:
- 通过向 XML 按钮添加 XML 属性:
试试这个:android:stateListAnimator="@null"
- 通过添加另一个 XML 属性,如果以前的替代方法不起作用:
根据 this 将此 style="?android:attr/borderlessButtonStyle"
添加到您的 XML 按钮。
如果它不起作用,请告诉我!
在布局中添加以下属性 XML 以移除阴影:
android:elevation="0dp"
android:translationZ="0dp"
这将使您的布局看起来像:
<android.support.v7.widget.AppCompatButton
android:id="@+id/login_btn_facebook"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:drawableStart="@drawable/ic_btn_login_facebook"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:elevation="0dp"
android:translationZ="0dp"
android:text="Continue with Facebook"
android:textColor="#fff"
app:backgroundTint="#3b5998"/>
<android.support.v7.widget.AppCompatButton
android:id="@+id/login_btn_google"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:drawableStart="@drawable/ic_btn_login_google"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:elevation="0dp"
android:translationZ="0dp"
android:text="Continue with Google"
app:backgroundTint="#ffffff" />
阅读 here 了解更多信息。