簡體   English   中英

Android - 如何實現嵌套按鈕

[英]Android - how to implement nested button

我正在開發一個有5個按鈕的項目,當我點擊它們時,它應該顯示另外3個按鈕。 當我點擊3個按鈕中的任何一個時,它應該打開一個活動。

我曾嘗試使用MaterialArcMenu它沒有給我我需要它給我一個圓形按鈕。

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

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

     ---> Nested Button 2    

按鈕2

按鈕3

按鈕4

按鈕5

在此輸入圖像描述

  1. xml文件中有8個按鈕。 其中5個是可見的,其中3個是隱藏和禁用的
  2. 讓5實現相同的onClickListener(使用xml onClick屬性對此最簡單)
  3. 讓3實現相同的onClickListener(使用xml onClick屬性對此最簡單)
  4. 在5個按鈕的onClickListener中,編寫使其他3個按鈕可見並啟用的代碼
  5. 在3個按鈕的onClickListener中,編寫用於打開新活動的代碼

如果您是從布局創建按鈕,那么我建議您將活動或片段添加為單擊事件偵聽器。 其次,為按鈕設置標簽。 然后,當單擊該按鈕時,獲取視圖的標記並相應地處理。

這是一個例子:

 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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM