基于管理员权限隐藏浮动操作按钮



我正试图为我的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()只有在您可以在文档中阅读的视图已经布局的情况下才能工作

最新更新