【发布时间】:2020-07-07 14:45:59
【问题描述】:
我正在尝试为我的 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"/>
【问题讨论】:
-
请不要因为使用 android-studio 标签而标记问题:Android Studio 标签应该仅在您对 IDE 本身有疑问时使用,而不是您在其中编写(或想要编写)的任何代码。请参阅 when is it appropriate to remove an IDE tag、How do I avoid misusing tags? 和 the tagging guide。请改用 [android] 或其他相关标签。
-
@Zoe 感谢您的编辑,注意!您还有什么其他建议可以帮助解决这里的问题吗?
-
您是否检查过您的
isAdmin方法是否返回正确的值? -
我没有看到 fab.show();
-
IsAdmin 方法是异步的吗?
标签: android floating-action-button