Snackbar和FloatingActionButton错误

时间:2015-09-04 11:31:56

标签: android android-layout android-fragments android-design-library floating-action-button

我在Coordinator Layout中有一个FAB按钮,我已在Coordinator Layout中设置了小吃栏。然而,如果可以看到小吃店,并且我执行了触发另一个小吃栏的动作,而第一个仍然可见,则FAB按钮会出现故障并落在小吃店后面。而不是随着小吃店移动。

Coordinator LayoutRelative Layout adview Coordinator Layout layout.xml以下<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:ads="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/background"> <RelativeLayout android:id="@+id/circle2" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.CoordinatorLayout android:id="@+id/container2" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/adView" android:background="#FFF3E0" tools:context=".MainActivity" android:orientation="vertical"> <SurfaceView android:layout_width="0px" android:layout_height="0px" android:visibility="gone" /> <include android:id="@+id/circle" layout="@layout/periodictablelayout" /> <include android:id="@+id/toolbar_actionbar" layout="@layout/toolbar_default" android:layout_width="match_parent" android:layout_height="wrap_content" /> <FrameLayout android:id="@+id/container" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="?android:attr/actionBarSize" /> <android.support.design.widget.FloatingActionButton android:id="@+id/periodbutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="16dp" android:layout_marginEnd="16dp" android:elevation="3dp" android:onClick="onClick" app:layout_anchorGravity="bottom|right|end" app:layout_anchor="@+id/container2" android:src="@drawable/ic_view_comfy_white_24dp" app:backgroundTint="@color/accent" android:layout_gravity="bottom|end" app:layout_behavior="ibochemistry.titomo.timetoolay.google.com.ibchemistry.ScrollAwareFABBehaviour" /> </android.support.design.widget.CoordinatorLayout> <com.google.android.gms.ads.AdView android:id="@+id/adView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" ads:adSize="BANNER" ads:adUnitId="@string/banner_ad_unit_id" app:layout_anchorGravity="bottom" /> </RelativeLayout> <!-- android:layout_marginTop="?android:attr/actionBarSize"--> <fragment android:id="@+id/fragment_drawer" android:name="ibo.NavigationDrawerFragment" android:layout_width="@dimen/navigation_drawer_width" android:layout_height="wrap_content" android:layout_gravity="start" android:layout_marginTop="@dimen/abc_action_bar_default_height_material" app:layout="@layout/fragment_navigation_drawer" tools:layout="@layout/fragment_navigation_drawer" />

这是frame

transform

3 个答案:

答案 0 :(得分:2)

如何用snackBar移动FAB。我想这会解决你的问题。每当看到零食棒时都这样做,

SnackbarManager.show(
Snackbar.with(getApplicationContext()) // context
    .text("This will do something when dismissed") // text to display
    .eventListener(new EventListener() {
        @Override
        public void onShow(Snackbar snackbar) {
            myFloatingActionButton.moveUp(snackbar.getHeight());
        }
        @Override
        public void onShown(Snackbar snackbar) {
            Log.i(TAG, String.format("Snackbar shown. Width: %d Height: %d Offset: %d",
                    snackbar.getWidth(), snackbar.getHeight(),
                    snackbar.getOffset()));
        }
        @Override
        public void onDismiss(Snackbar snackbar) {
            myFloatingActionButton.moveDown(snackbar.getHeight());
        }
        @Override
        public void onDismissed(Snackbar snackbar) {
            Log.i(TAG, String.format("Snackbar dismissed. Width: %d Height: %d Offset: %d",
                                snackbar.getWidth(), snackbar.getHeight(),
                                snackbar.getOffset()));
        }
    }) // Snackbar's EventListener
, this); // activity where it is displayed

让我知道它是否适合你...

答案 1 :(得分:0)

使用, 这里查看 - fabView

Snackbar.make(view, "Hello Snackbar", Snackbar.LENGTH_LONG).show();

这将显示fab snack above吧

答案 2 :(得分:0)

此问题已在支持lib 23.1.0中得到修复,只需更新您的依赖项即可修复它。