android - 带有 Snackbar 和透明导航栏的 FloatingActionButton

我有<item name="android:windowTranslucentNavigation">true</item>在我的 styles.xml .

由于透明的导航栏,我给了 float 操作按钮边距。

我的 snackbar 在透明导航栏下面有一个问题。我通过给 snackbar 一个填充来解决这个问题,但现在我的 snackbar 和我的 float 操作按钮之间的空间太大了。我尝试为我的 float 操作按钮创建自定义行为,但导航栏的自定义边距和 snackbar 的填充在 snackbar 被关闭或显示时导致高度错误。

那是我在 android.support.design.widget.CoordinatorLayout 中的 float 操作按钮具有属性 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" />

我还没有找到对齐 FloatingActionButton 的解决方案和 SnackBarNavigationBar 之上不破坏 behavior .

我的 CoordinatorLayout 位于 fragment 内。这是 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" />

fragment 布局:

<?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>

最佳答案

我想这样就可以了。检查一下,如果它不起作用,也请共享您的 snackbar 代码。

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

https://stackoverflow.com/questions/34134647/

相关文章:

sql-server - 在 SQL Server 2012 的情况下,尝试在我的 select 语

android - 谷歌身份验证后,即将到来的网址不允许我在 Cordova 应用程序中走得更远

d3.js - d3 中的自定义比例

mongodb - 如何运行 mongo-express(无需身份验证)?

matrix - Spark RDD 到 Matrix

git - 为什么 cherry-pick 告诉我所有线路都已更改?

node.js - 如何在 mongodb 中插入嵌套对象?

java - 在 Apache Spark SQL 中对多行进行操作

java - 收听 RabbitMQ 队列并获取事件通知

types - 如何声明 TypeScript 导入 * 类型?