2

サポート ライブラリ ドキュメントには、バージョン 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 の昇格を設定するにはどうすればよいですか?

4

2 に答える 2

0

これが解決策です:

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" />

values フォルダーの下の 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>
于 2015-06-01T09:51:29.557 に答える