8

Google の新しい Deisgn ライブラリの使用を開始しました:「com.android.support:design:22.2.0」

私は FloatingActionButton を使用していますが、Android 5.0 未満と 5.0 以上の間に小さな問題があります。スクリーンショットを見る:

アンドロイド 4.4:

アンドロイド 4.4

アンドロイド 5.0: アンドロイド 5.0

ご覧のとおり、Android 4.4 では、FAB の周りにマージンがあります。これは影を表示するためだと思います。しかし、それは特大です!それで、それはバグ(またはGoogleの忘れ)ですか、それとも単なる通常の動作ですか?

彼 fabs をホストしているビューの xml:

<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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="fr.freemo.freemo.activities.ListFreemoCityActivity">

<include
    android:id="@+id/toolbar"
    layout="@layout/view_toolbar" />


<FrameLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/toolbar">

</FrameLayout>


<ProgressBar
    android:id="@+id/progressBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true" />

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab_add"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="@dimen/margin_fab"
    android:layout_marginRight="@dimen/margin_fab"
    android:elevation="@dimen/fab_elevation_lollipop"
    android:src="@drawable/ic_action_new"
    app:backgroundTint="@color/color_app"
    app:fab_type="normal" />


<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab_display"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/fab_add"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="@dimen/margin_fab"
    android:layout_marginRight="@dimen/margin_fab"
    android:elevation="@dimen/fab_elevation_lollipop"
    android:src="@drawable/ic_map_white"
    android:tint="@color/color_app"
    app:backgroundTint="@color/white"
    app:fab_type="normal" />

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab_display_list"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/fab_display"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="@dimen/margin_fab"
    android:layout_marginRight="@dimen/margin_fab"
    android:elevation="@dimen/fab_elevation_lollipop"
    android:src="@drawable/ic_action_list"
    android:tint="@color/color_app"
    android:visibility="invisible"
    app:backgroundTint="@color/white"
    app:fab_type="normal" />

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab_display_grid"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/fab_display_list"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="@dimen/margin_fab"
    android:layout_marginRight="@dimen/margin_fab"
    android:elevation="@dimen/fab_elevation_lollipop"
    android:src="@drawable/ic_view_module_white"
    android:tint="@color/color_app"
    android:visibility="invisible"
    app:backgroundTint="@color/white"
    app:fab_type="normal" />
   </RelativeLayout>
4

3 に答える 3

3

これは問題であり (私が作成したバグ レポートを確認してください: https://code.google.com/p/android/issues/detail?id=175330 )、support-design ライブラリの今後のリリースで修正する必要があります。

于 2015-06-03T11:27:07.877 に答える
0

API 21 のバグです。余白を削除することで矢印を表示できます。これを解決する方法は次のとおりです。さまざまなデバイスでテストした後、動作するようです:

https://stackoverflow.com/a/31337162/3173384

編集済み

バグはすでに修正されています。すべてのサポート ライブラリを v 22.2.1 に更新するだけです

compile 'com.android.support:design:22.2.1'
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.android.support:cardview-v7:22.2.1'
compile 'com.android.support:recyclerview-v7:22.2.1'
于 2015-07-10T09:29:26.080 に答える
0

これは実際のバグではないと明記されています。代わりに、これは予想される動作です。

Google開発者の回答を引用:

これはバグではなく、完全に避けられないものであるという意味で、意図したとおりに機能しています。CoordinatorLayout 内にはいくつかの制御があり、FAB をオフセットできる特定の状況 (エッジ) を検出できます。ただし、これはハックです。

気に入らない場合は、仰角を 0dp に設定してください。

他の誰かがここで述べたように、定義する必要があります

xmlns:app="http://schemas.android.com/apk/res-auto"
app:borderWidth="0dp"
app:elevation="0dp"

または、さらに良いことに、使用している API バージョンに基づいて dimens.xml で標高を定義します。最も一般的なケースは次のとおりです。

<!-- dimens.xml(v21) -->
<dimen name="custom_fab_elevation">@dimen/fab_elevation</dimen>

<!-- dimens.xml(lower) -->
<dimen name="custom_fab_elevation">0dp</dimen>
于 2015-08-27T22:38:59.767 に答える