模仿Material-design raised button style, Stackoverflow解决方案麻烦
Mimicking Material-design raised button style, trouble with Stackoverflow solution
我正在为这里的最佳答案而苦苦挣扎:How to mimic the Material-design raised button style, even for pre-Lollipop (minus the special effects)?
我用 @spierce7
列出的基本要素制作了一个模拟程序
- 在 gradle 中:
compile "com.android.support:appcompat-v7:24.1.1"
//(在我的例子中是 24.2.1)
- 在styles.xml中:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
- 在 Android 清单中:
android:theme="@style/AppTheme"
- 我的 Activity 扩展
AppCompatActivity
- 我的按钮是
AppCompatButton
(或普通的 Button
,没关系)
布局如下XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/content_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/activity_main">
<android.support.v7.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:id="@+id/textview_helloworld"/>
<android.support.v7.widget.AppCompatButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:layout_below="@id/textview_helloworld"/>
</RelativeLayout>
结果是这样的:
角落浮动按钮随 "raised look" 膨胀,但不是我的 AppCompatButton。
而且我仍然没有在 Lollipop 之前看到凸起的按钮。我错过了什么或做错了什么?
再次检查最新版本后,appcompat 库似乎也没有为我反向移植凸起的按钮效果。我已经相应地更新了我的答案。
我的建议是您只使用 appcompat 库为您提供的内容,因为它仍然符合 material 设计指南。如果出于某种原因你必须有一个精确的反向移植(一个精确的反向移植不仅包括凸起的按钮效果,还包括凸起的按下动画效果,以及波纹),你需要查看一些第 3 方库。我见过带有部分向后移植但没有完全向后移植的第 3 方库,但我没有仔细查看。
如果您想自己制作,则需要遵循我对您发布的问题的旧回答,扩展 CardView
。
我正在为这里的最佳答案而苦苦挣扎:How to mimic the Material-design raised button style, even for pre-Lollipop (minus the special effects)?
我用 @spierce7
列出的基本要素制作了一个模拟程序- 在 gradle 中:
compile "com.android.support:appcompat-v7:24.1.1"
//(在我的例子中是 24.2.1) - 在styles.xml中:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
- 在 Android 清单中:
android:theme="@style/AppTheme"
- 我的 Activity 扩展
AppCompatActivity
- 我的按钮是
AppCompatButton
(或普通的Button
,没关系)
布局如下XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/content_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/activity_main">
<android.support.v7.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:id="@+id/textview_helloworld"/>
<android.support.v7.widget.AppCompatButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:layout_below="@id/textview_helloworld"/>
</RelativeLayout>
结果是这样的:
角落浮动按钮随 "raised look" 膨胀,但不是我的 AppCompatButton。
而且我仍然没有在 Lollipop 之前看到凸起的按钮。我错过了什么或做错了什么?
再次检查最新版本后,appcompat 库似乎也没有为我反向移植凸起的按钮效果。我已经相应地更新了我的答案。
我的建议是您只使用 appcompat 库为您提供的内容,因为它仍然符合 material 设计指南。如果出于某种原因你必须有一个精确的反向移植(一个精确的反向移植不仅包括凸起的按钮效果,还包括凸起的按下动画效果,以及波纹),你需要查看一些第 3 方库。我见过带有部分向后移植但没有完全向后移植的第 3 方库,但我没有仔细查看。
如果您想自己制作,则需要遵循我对您发布的问题的旧回答,扩展 CardView
。