我正在努力满足关于菜单按钮可见性的家庭作业项目的规格。该项目声明应该有三个可见性按钮:all,x和y。按住x并单击y应该每个都会导致2个菜单项可见或不可见。单击全部应该导致所有4个项目可见或不可见。当所有4个项目都不可见时,应该可以看到3个可见性按钮。
我的问题是,当所有4个菜单项都不可见时,我无法找到让3个可见性按钮可见的方法。我在groups.xml中尝试了各种排序和分组无济于事。它应该很简单,但由于一些奇怪的原因,我无法弄明白。我也找不到任何可以学习的资源(不使用正确的单词进行搜索?)。请给我一些指示!谢谢。
答案 0 :(得分:0)
在Activity
(或Fragment
)中,您可以参考按钮,我会执行以下操作,其中可见性按钮的名称为x
,{{1} }和y
以及他们控制的四个按钮将是all
,button1
,button2
和button3
。
如果所有四个按钮都是隐形的,我们需要一种可以告诉我们的方法。为此,我们需要使用isShown()
方法,如果button4
可见性设置为Views
,则返回true:
VISIBLE
当且仅当所有按钮的可见性都设置为private boolean areButtonsInvisible() {
return !button1.isShown() && !button2.isShown() && !button3.isShown() && !button4.isShown();
}
或true
时,此方法才会返回GONE
。
然后我们需要一种方法来处理三个视图状态按钮的可见性:
INVISIBLE
然后在private void handleViewButtons() {
if( areButtonsInvisible() ) {
x.setVisibility( View.VISIBLE );
y.setVisibility( View.VISIBLE );
all.setVisibility( View.VISIBLE );
}
//You can handle other situations here as well. I haven't added any because you haven't stated anything about other scenarios.
}
,OnClickListeners
和x
的{{1}}中,您只需在设置y
的可见性后添加对方法all
的调用{1}},handleViewButtons()
,button1
和button2
。