2016-01-21 99 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 
}