android - 根据管理员权限隐藏浮动操作按钮
问题描述
我正在尝试为我的 android 应用程序的非管理员用户隐藏一个浮动操作按钮。因此,当我执行 FAB 下面的代码时,所有用户都会隐藏。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
if (FirebaseUtil.isAdmin) {
final FloatingActionButton fab = findViewById(R.id.fab);
fab.show();
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(ListActivity.this, ItemActivity.class));
}
});
}
但是,当我将条件嵌套在如下 FAB 中时,在非管理员用户单击它后,它会为非管理员隐藏。
final FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (FirebaseUtil.isAdmin) {
startActivity(new Intent(ListActivity.this, ItemActivity.class));
} else {
// TODO: Hide FAB for none none-admin users
fab.hide();
}
}
});
这是XML,有什么想法我可能做错了吗?
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
app:srcCompat="@android:drawable/ic_input_add"
android:visibility="invisible"/>
解决方案
你需要使用View.setVisibility()
. FloatingActionButton.show()
或者FloatingActionButton.hide()
只有在视图已经布置好的情况下才能工作,如您在文档中阅读的那样
推荐阅读
- wordpress - 购物车和结帐页面上的 WooCommerce 挂钩输出问题
- powershell - 运行帮助
和管道输出到 Where-Object 或 Select-Object 返回空行 - java - 该应用程序在主屏幕上关闭并重新启动
- python - SKlearn 管道:ValueError:输入包含 NaN
- c++ - 将 *.hpp 或 *.cpp 文件包含在 *.h 文件中哪个更好
- typescript - 带有类方法装饰器的打字稿奇怪行为
- java - 升级到 SpringBoot 2.5.0 GA - 丢失所有指标
- angular - 为什么在服务中调用 LoginEndpoint 并订阅 observable 时会调用两次?
- node.js - nodejs升级后运行apollo服务器的问题(使用nestjs和fastify)
- python-3.x - 为什么密码以原始格式存储到 Django 中的数据库中?