2016-01-21 104 views
1

我正在研究一個有5個按鈕的項目,當我點擊它們中的任何一個時,它應該顯示另外3個按鈕。當我點擊任何3個按鈕時,它應該打開一個活動。Android - 如何實現嵌套按鈕

我已經嘗試使用MaterialArcMenu它不給我我需要它給我一個圓形按鈕。

我可以收到關於此的任何建議嗎?

按鈕1 --->嵌套按鈕1 - >嵌套按鈕1

 ---> Nested Button 2  

按鈕2

按鈕3

按鈕4

按鈕5

enter image description here

回答

2
  1. 在你的xml文件中有8個按鈕。其中5是可見的,其中3個是隱藏&禁用
  2. 具有5實現相同onClickListener(使用XML的onClick屬性是最簡單的用於此)
  3. 具有3實現相同onClickListener以及(使用XML的onClick屬性是最簡單的爲這個)
  4. 在onClickListener的5個按鈕,編寫代碼,使其他3個按鈕啓用
  5. 在onClickListener的3個按鍵可見&,寫打開的新活動代碼
1

如果從佈局創建按鈕,那麼我建議要做的就是將活動或片段添加爲單擊事件偵聽器。其次,爲按鈕設置一個標籤。然後點擊按鈕時,獲取視圖的標籤並相應地進行處理。

下面是一個例子:

protected CustomImageButton getSmartLinkImageButton(int buttonImageResource, int colorToChangeTo, boolean isLargerImage, ActionType buttonAction) { 
     LayoutInflater inflater = (LayoutInflater) this.getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     SmartLinkImageButton button = (SmartLinkImageButton) inflater.inflate(R.layout.footer_smartlink_image_button, null); 

     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(mFooterButtonWidth, 
       isLargerImage == true ? mFooterButtonHeight/2 : mFooterButtonHeight); 
     params.gravity = Gravity.CENTER; 
     button.setLayoutParams(params); 

     if(isLargerImage) 
      button.setScaleType(ScaleType.FIT_CENTER); 
     button.setImageResource(buttonImageResource); 

     if(colorToChangeTo > 0) { 
      changeImageViewImageColor(button, null, colorToChangeTo); 
      button.setDefaultColorFilter(colorToChangeTo); 
     } 

     button.setTag(buttonAction); //HERE IS THE TAG CREATION 
     button.setOnClickListener(this); 

     //optional method for mapping image buttons 
     mapImageButton(button, buttonAction); 

     inflater = null; 
     return button; 
    } 

然後的onClick:

@Override 
public void onClick(View view) {    
    view.getTag(); //DO ACTION BASED ON VIEWS TAG 
}