2011-12-21 160 views
1

我正在努力滿足菜單按鈕可見性的作業項目規格。該項目指出應該有三個可見性按鈕:all,x和y。在x上點擊並單擊y應該使每個菜單項都可見或不可見。點擊全部應該會導致所有4個項目可見或不可見。當所有4個項目都不可見時,3個可見性按鈕應該可見。菜單按鈕的可見性

我的問題是我還沒有能夠找出一種方法,當所有4個菜單項不可見時,3個可見性按鈕都可見。我在groups.xml中嘗試了各種排序和分組,無濟於事。這應該很簡單,但由於一些奇怪的原因,我無法弄清楚。我也找不到要學習的任何資源(不使用正確的詞搜索?)。請給我幾個指針!謝謝。

回答

0

在你Activity(或Fragment),你在哪裏得到關於你的按鈕,我會做類似下面的地方能見度按鈕將被命名爲xyall,他們控制將是button1button2四個按鈕, button3button4

我們需要一種方法,可以告訴我們,如果所有四個按鈕都不可見。爲此,我們需要使用如果Views可見性設置爲VISIBLE該方法返回true isShown()

private boolean areButtonsInvisible() { 
    return !button1.isShown() && !button2.isShown() && !button3.isShown() && !button4.isShown(); 
} 

此方法將返回true當且僅當所有的按鈕都有自己的知名度設置爲GONEINVISIBLE

然後,我們需要處理三個視圖狀態按鈕的可見度的方法:在xyOnClickListeners

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. 
} 

然後和all你只需要添加一個調用方法handleViewButtons()設置完button1,button2,button3button4的可見度。