查看可见性无效

时间:2015-10-22 09:52:31

标签: android visibility floating-action-button

我目前正在开发一个应用程序 我在开始的活动中 FAB 隐藏

但是,只需给布局充气,工厂就可见了。 关于这是如何发生的任何想法?

谢谢你的建议。

取自AndroidStudio的截图: enter image description here

    <android.support.design.widget.AppBarLayout
        android:id="@+id/summoner_detail_appbarlayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/summoner_detail_collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:expandedTitleMarginBottom="56dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <kleinschloss.lolticker.ui.widget.RectLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed">

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_collapseMode="parallax"/>

                <View
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:background="#32000000" />

                <ImageView
                    android:id="@+id/summoner_detail_icon"
                    android:layout_width="68dp"
                    android:layout_height="68dp"
                    android:background="@color/colorAccent"
                    android:layout_centerInParent="true"
                    app:layout_collapseMode="pin"/>
            </kleinschloss.lolticker.ui.widget.RectLayout>

        <android.support.v7.widget.Toolbar
            android:id="@+id/summoner_detail_toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_scrollFlags="scroll|enterAlways"/>

            <android.support.design.widget.TabLayout
                android:id="@+id/summoner_detail_tablayout"
                android:layout_width="match_parent"
                android:layout_height="48dp"
                app:layout_collapseMode="pin"
                android:layout_gravity="bottom" />

        </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/summoner_detail_fab"
        android:visibility="invisible"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_anchor="@+id/summoner_detail_appbarlayout"
        app:layout_anchorGravity="bottom|end"
        android:layout_margin="16dp"/>

    <android.support.v4.view.ViewPager
        android:id="@+id/summoner_detail_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

1 个答案:

答案 0 :(得分:1)

我遇到了完全相同的问题。当FloatingActionButton锚定到AppBarLayout时,谷歌的Android团队似乎不希望您控制可见性,正如本期所讨论的那样 - FloatingActionButton Ignores View Visibility

看起来可行的修复方法是将FAB包装在CoordinatorLayout中并在包装器上设置可见性,如下所示:

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

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/fab_icon"/>

</android.support.design.widget.CoordinatorLayout>

然而,您可能希望考虑这是否是理想行为。 Google支持者建议在创建屏幕后立即看到FAB。如果您将其隐藏的时间超过了为其设置动画所需的时间,请考虑改为显示禁用状态。