查看可见性不起作用

View visibility not working

我目前正在开发一个应用程序,其中 我有一个 FAB 应该 invisible 在 activity start.

但是在对布局进行充气时,工厂是可见的。 关于这是如何发生的任何想法?

谢谢你的建议。

从 AndroidStudio 截取的屏幕截图:

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

我运行进入完全相同的问题。当 FloatingActionButton 锚定到 AppBarLayout 时,Google 的 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。如果您将其隐藏的时间超过为其设置动画所需的时间,请考虑改为显示禁用状态。