use*_*095 12 android android-support-library material-design android-design-library
我无法隐藏我的FloatingActionButton.这是我的代码:
XML:
<CoordinatorLayout>
<AppBarLayout android:id="@+id/appbar">
<CollapsingToolbarLayout>
<ImageView/>
<android.support.v7.widget.Toolbar />
</CollapsingToolbarLayout>
</AppBarLayout>
<NestedScrollView />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
app:layout_anchor="@id/appbar"
app:layout_anchorGravity="bottom|right|end"/>
</CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
我打电话给:
fab.clearAnimation();
fab.setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)
我试图隐藏FAB,但似乎setVisibility+ clearAnimation如果FAB在a中则不起作用CoordinatorLayout.
即使我打电话fab.clearAnimation,动画仍然会被触发.谁能帮我?
Hem*_*wal 29
使用show和hide方法显示和隐藏浮动操作按钮
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
// To show the Floating Action Button
fab.show();
// To hide the Floating Action Button
fab.hide();
Run Code Online (Sandbox Code Playgroud)
nat*_*rio 16
如果您的问题是动画,则可以尝试使FAB无效Behavior.至于可见性,您应该使您在布局中设置的锚点为null:
CoordinatorLayout.LayoutParams p = (CoordinatorLayout.LayoutParams) fab.getLayoutParams();
p.setBehavior(null); //should disable default animations
p.setAnchorId(View.NO_ID); //should let you set visibility
fab.setLayoutParams(p);
fab.setVisibility(View.GONE); // View.INVISIBLE might also be worth trying
//to bring things back to normal state
CoordinatorLayout.LayoutParams p = (CoordinatorLayout.LayoutParams) fab.getLayoutParams();
p.setBehavior(new FloatingActionButton.Behavior());
p.setAnchorId(R.id.appbar);
fab.setLayoutParams(p);
Run Code Online (Sandbox Code Playgroud)
Rah*_*ina 10
因为FloatingActionButton该setVisibility()方法在使用最新版本进行构建时会给您一个错误Gradle 6.x,build-tool 28.x.x并且不再鼓励使用。而是使用:
fab.hide() // fab.setVisibility(View.GONE)
fab.show() // fab.setVisibility(View.VISIBLE)
Run Code Online (Sandbox Code Playgroud)
注:成功与测试的
Android Studio 3.4.1,Gradle 6.0并build-tool 28.0.1
我遇到了完全相同的问题.当FloatingActionButton锚定到AppBarLayout时,Google的Android团队似乎不希望您控制可见性,如本期中所述 - FloatingActionButton忽略视图可见性
看起来可行的解决方法是将FAB包装在FrameLayout中并在包装器上设置可见性,如下所示:
<android.support.design.widget.FrameLayout
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.FrameLayout>
Run Code Online (Sandbox Code Playgroud)
但是,您可以考虑这是否是理想的行为.Google支持者建议在创建屏幕后立即看到FAB.如果您将其隐藏的时间超过了为其设置动画所需的时间,请考虑显示禁用状态.
| 归档时间: |
|
| 查看次数: |
16108 次 |
| 最近记录: |