带有 Snackbar 和透明导航栏的 FloatingActionButton
FloatingActionButton with Snackbar and transparent navigation bar
我的 styles.xml
中有 <item name="android:windowTranslucentNavigation">true</item>
。
因为透明的导航栏,我给了浮动操作按钮边距。
我的快餐栏位于透明导航栏下方,我遇到了一个问题。我通过给 snackbar 一个 padding 来解决这个问题,但是现在我的 snackbar 和我的浮动操作按钮之间有太多 space。我尝试为我的浮动操作按钮创建自定义行为,但导航栏的自定义边距和小吃栏的填充导致在关闭或显示小吃栏时高度错误。
那是我在 android.support.design.widget.CoordinatorLayout
内的浮动操作按钮,它具有 android:fitsSystemWindows="true"
属性
<android.support.design.widget.FloatingActionButton
android:id="@+id/myFAB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_gravity="bottom|right|end"
android:layout_marginEnd="10dp"
android:layout_marginRight="10dp"
app:borderWidth="0dp"
app:elevation="12dp"
app:layout_behavior="...ScrollAwareFABBehavior"
app:rippleColor="@color/md_indigo_700" />
我还没有找到在不破坏 behavior
.
的情况下将 FloatingActionButton
和 SnackBar
对齐到 NavigationBar
上方的解决方案
我的 CoordinatorLayout 在片段中。这是 activity 布局:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true" />
片段布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:wheel="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<include layout="@layout/fragment_toolbar" />
<com.pnikosis.materialishprogress.ProgressWheel
android:id="@+id/progress_wheel"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:visibility="gone"
wheel:matProg_barColor="#5588FF"
wheel:matProg_progressIndeterminate="true" />
<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingBottom="@dimen/navigation_bar_bottom_padding"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/myFAB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_gravity="bottom|right|end"
android:layout_marginEnd="10dp"
android:layout_marginRight="10dp"
app:borderWidth="0dp"
app:elevation="12dp"
app:layout_behavior="...ScrollAwareFABBehavior"
app:rippleColor="@color/md_indigo_700" />
</android.support.design.widget.CoordinatorLayout>
我想这样就可以了。检查一下,如果它不起作用,也请共享您的小吃店代码。
<android.support.design.widget.FloatingActionButton
android:id="@+id/myFAB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_anchorGravity="bottom|right|end"
android:layout_gravity="bottom|right"
app:borderWidth="0dp"
app:elevation="12dp"
app:layout_behavior="...ScrollAwareFABBehavior"
app:rippleColor="@color/md_indigo_700" />
我的 styles.xml
中有 <item name="android:windowTranslucentNavigation">true</item>
。
因为透明的导航栏,我给了浮动操作按钮边距。
我的快餐栏位于透明导航栏下方,我遇到了一个问题。我通过给 snackbar 一个 padding 来解决这个问题,但是现在我的 snackbar 和我的浮动操作按钮之间有太多 space。我尝试为我的浮动操作按钮创建自定义行为,但导航栏的自定义边距和小吃栏的填充导致在关闭或显示小吃栏时高度错误。
那是我在 android.support.design.widget.CoordinatorLayout
内的浮动操作按钮,它具有 android:fitsSystemWindows="true"
<android.support.design.widget.FloatingActionButton
android:id="@+id/myFAB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_gravity="bottom|right|end"
android:layout_marginEnd="10dp"
android:layout_marginRight="10dp"
app:borderWidth="0dp"
app:elevation="12dp"
app:layout_behavior="...ScrollAwareFABBehavior"
app:rippleColor="@color/md_indigo_700" />
我还没有找到在不破坏 behavior
.
FloatingActionButton
和 SnackBar
对齐到 NavigationBar
上方的解决方案
我的 CoordinatorLayout 在片段中。这是 activity 布局:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true" />
片段布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:wheel="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<include layout="@layout/fragment_toolbar" />
<com.pnikosis.materialishprogress.ProgressWheel
android:id="@+id/progress_wheel"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:visibility="gone"
wheel:matProg_barColor="#5588FF"
wheel:matProg_progressIndeterminate="true" />
<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingBottom="@dimen/navigation_bar_bottom_padding"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/myFAB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_gravity="bottom|right|end"
android:layout_marginEnd="10dp"
android:layout_marginRight="10dp"
app:borderWidth="0dp"
app:elevation="12dp"
app:layout_behavior="...ScrollAwareFABBehavior"
app:rippleColor="@color/md_indigo_700" />
</android.support.design.widget.CoordinatorLayout>
我想这样就可以了。检查一下,如果它不起作用,也请共享您的小吃店代码。
<android.support.design.widget.FloatingActionButton
android:id="@+id/myFAB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_anchorGravity="bottom|right|end"
android:layout_gravity="bottom|right"
app:borderWidth="0dp"
app:elevation="12dp"
app:layout_behavior="...ScrollAwareFABBehavior"
app:rippleColor="@color/md_indigo_700" />