带有新支持库的棒棒糖前设备上的 FAB
FAB on pre-lollipop devices with the new support lib
support library doc 声明版本 22.2 支持 Pre-Lollipop 设备上的 FloatingActionButton。
我已经实现了一个演示应用程序来展示 KitKat 上的 FAB。
显示了 FAB,但我仍然无法在 xml 和代码中设置海拔。
在 xml 中,我收到警告,我需要使用 tools:ignore="NewApi"
。如果我以编程方式调用 setElevation
,则会出现异常,因为该方法不存在。
我已将其添加到我的布局中
<android.support.design.widget.FloatingActionButton
android:id="@+id/add_button"
style="@style/FAB"
android:src="@drawable/ic_add_white_24dp"
android:contentDescription="@string/add_ringtone" />
样式定义如下:
<resources
xmlns:tools="http://schemas.android.com/tools">
<style name="FAB" tools:ignore="NewApi">
<item name="android:layout_width">@dimen/fab_width</item>
<item name="android:layout_height">@dimen/fab_height</item>
<item name="android:background">@drawable/fab_background</item>
<item name="android:layout_alignParentBottom">true</item>
<item name="android:layout_alignParentRight">true</item>
<item name="android:layout_marginBottom">@dimen/fab_margin</item>
<item name="android:layout_marginRight">@dimen/fab_margin</item>
<item name="android:elevation" >@dimen/fab_elevation</item>
<item name="android:stateListAnimator">@anim/rise</item>
</style>
</resources>
如何使用新的支持库设置 KitKat 的高度?
由于新的 FAB 现在是支持库的一部分,您可能需要替换
<item name="android:elevation">@dimen/fab_elevation</item>
来自
<item name="app:elevation">@dimen/fab_elevation</item>
你的风格。
这是解决方案:
在 gradle 文件中:
dependencies {
compile 'com.android.support:support-v4:22.2.0'
compile 'com.android.support:design:22.2.0'
}
在布局文件中:
<android.support.design.widget.FloatingActionButton
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/add_button"
style="@style/FAB"
app:elevation="@dimen/fab_elevation"
android:src="@drawable/ic_add_white_24dp"
android:contentDescription="@string/add_ringtone" />
在值文件夹下的 styles.xml 中:
<style name="FAB">
<item name="android:layout_width">@dimen/fab_size</item>
<item name="android:layout_height">@dimen/fab_size</item>
<item name="android:background">@drawable/fab_background</item>
<item name="android:layout_alignParentBottom">true</item>
<item name="android:layout_alignParentRight">true</item>
<item name="android:layout_marginBottom">@dimen/fab_edge_distance</item>
<item name="android:layout_marginRight">@dimen/fab_edge_distance</item>
在 values-21 文件夹下的 styles.xml 中:
<resources
xmlns:tools="http://schemas.android.com/tools">
<style name="FAB" tools:ignore="NewApi">
<item name="android:layout_width">@dimen/fab_width</item>
<item name="android:layout_height">@dimen/fab_height</item>
<item name="android:background">@drawable/fab_background</item>
<item name="android:layout_alignParentBottom">true</item>
<item name="android:layout_alignParentRight">true</item>
<item name="android:layout_marginBottom">@dimen/fab_margin</item>
<item name="android:layout_marginRight">@dimen/fab_margin</item>
<item name="android:stateListAnimator">@anim/rise</item>
</style>
</resources>
support library doc 声明版本 22.2 支持 Pre-Lollipop 设备上的 FloatingActionButton。
我已经实现了一个演示应用程序来展示 KitKat 上的 FAB。
显示了 FAB,但我仍然无法在 xml 和代码中设置海拔。
在 xml 中,我收到警告,我需要使用 tools:ignore="NewApi"
。如果我以编程方式调用 setElevation
,则会出现异常,因为该方法不存在。
我已将其添加到我的布局中
<android.support.design.widget.FloatingActionButton
android:id="@+id/add_button"
style="@style/FAB"
android:src="@drawable/ic_add_white_24dp"
android:contentDescription="@string/add_ringtone" />
样式定义如下:
<resources
xmlns:tools="http://schemas.android.com/tools">
<style name="FAB" tools:ignore="NewApi">
<item name="android:layout_width">@dimen/fab_width</item>
<item name="android:layout_height">@dimen/fab_height</item>
<item name="android:background">@drawable/fab_background</item>
<item name="android:layout_alignParentBottom">true</item>
<item name="android:layout_alignParentRight">true</item>
<item name="android:layout_marginBottom">@dimen/fab_margin</item>
<item name="android:layout_marginRight">@dimen/fab_margin</item>
<item name="android:elevation" >@dimen/fab_elevation</item>
<item name="android:stateListAnimator">@anim/rise</item>
</style>
</resources>
如何使用新的支持库设置 KitKat 的高度?
由于新的 FAB 现在是支持库的一部分,您可能需要替换
<item name="android:elevation">@dimen/fab_elevation</item>
来自
<item name="app:elevation">@dimen/fab_elevation</item>
你的风格。
这是解决方案:
在 gradle 文件中:
dependencies {
compile 'com.android.support:support-v4:22.2.0'
compile 'com.android.support:design:22.2.0'
}
在布局文件中:
<android.support.design.widget.FloatingActionButton
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/add_button"
style="@style/FAB"
app:elevation="@dimen/fab_elevation"
android:src="@drawable/ic_add_white_24dp"
android:contentDescription="@string/add_ringtone" />
在值文件夹下的 styles.xml 中:
<style name="FAB">
<item name="android:layout_width">@dimen/fab_size</item>
<item name="android:layout_height">@dimen/fab_size</item>
<item name="android:background">@drawable/fab_background</item>
<item name="android:layout_alignParentBottom">true</item>
<item name="android:layout_alignParentRight">true</item>
<item name="android:layout_marginBottom">@dimen/fab_edge_distance</item>
<item name="android:layout_marginRight">@dimen/fab_edge_distance</item>
在 values-21 文件夹下的 styles.xml 中:
<resources
xmlns:tools="http://schemas.android.com/tools">
<style name="FAB" tools:ignore="NewApi">
<item name="android:layout_width">@dimen/fab_width</item>
<item name="android:layout_height">@dimen/fab_height</item>
<item name="android:background">@drawable/fab_background</item>
<item name="android:layout_alignParentBottom">true</item>
<item name="android:layout_alignParentRight">true</item>
<item name="android:layout_marginBottom">@dimen/fab_margin</item>
<item name="android:layout_marginRight">@dimen/fab_margin</item>
<item name="android:stateListAnimator">@anim/rise</item>
</style>
</resources>