我目前正在开发一个应用程序 我在开始的活动中 FAB 隐藏。
但是,只需给布局充气,工厂就可见了。 关于这是如何发生的任何想法?
谢谢你的建议。
<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"/>
答案 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。如果您将其隐藏的时间超过了为其设置动画所需的时间,请考虑改为显示禁用状态。