Android浮动操作按钮未重置位置

时间:2016-06-09 17:45:58

标签: android floating-action-button

使用23.3.0版本的支持库并在Android M上进行测试。在显示Snackbar后,FAB重新定位问题。

当显示Snackbar时,fab正确向上移动,但当Snackbar解散时,它不会向下移动。

代码:

Snackbar.make(coordinatorLayout, R.string.msg_add_team,     Snackbar.LENGTH_LONG).show();

还尝试使用Snackbar的回调功能强制关闭位置,这会打破Snackbar的后续显示,因为它将不再移动工厂。

回调代码:

@Override
public void onDismissed(Snackbar snackbar, int event) {
    super.onDismissed(snackbar, event);                       
    newGameFab.setTranslationY(0); 
}

布局:

<android.support.v7.widget.RecyclerView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/upcoming_game_list"
/>

<android.support.design.widget.FloatingActionButton
    android:id="@+id/new_game"
    android:layout_width="56dp"
    android:layout_height="56dp"
    android:src="@drawable/ic_add_white_24dp"
    android:layout_gravity="bottom|end"
    app:elevation="6dp"
    app:pressedTranslationZ="12dp"
    android:layout_marginBottom="@dimen/fab_margin_bottom"
    android:layout_marginRight="@dimen/fab_margin_right"
    app:borderWidth="0dp"
    app:backgroundTint="@color/accent"/>

1 个答案:

答案 0 :(得分:0)

将包含CoordinatorLayout的包含浮动操作按钮的视图包装为:

<android.support.design.widget.CoordinatorLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/coordinatorLayout">

    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/upcoming_game_list"/>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/new_game"
        android:layout_width="56dp"
        android:layout_height="56dp"
        android:src="@drawable/ic_add_white_24dp"
        android:layout_gravity="bottom|end"
        app:elevation="6dp"
        app:pressedTranslationZ="12dp"
        android:layout_marginBottom="@dimen/fab_margin_bottom"
        android:layout_marginRight="@dimen/fab_margin_right"
        app:borderWidth="0dp"
        app:backgroundTint="@color/accent"/>
</android.support.design.widget.CoordinatorLayout>