第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

為什么我的 Android 快餐欄在單擊其操作按鈕后會(huì)消失?

為什么我的 Android 快餐欄在單擊其操作按鈕后會(huì)消失?

江戶川亂折騰 2022-06-23 15:47:02
我有一個(gè)小吃店,我建立的持續(xù)時(shí)間設(shè)置為Snackbar.LENGTH_INDEFINITE當(dāng)我打電話時(shí),小吃店會(huì)正確顯示mySnackbar.show();但是,只要我按下操作按鈕,小吃店就會(huì)消失。系統(tǒng)似乎調(diào)用了dismiss方法。有誰知道解決方法?這是我構(gòu)建小吃店的代碼:Snackbar mySnackbar = Snackbar.make(mParent, R.string.the_question, Snackbar.LENGTH_INDEFINITE)                .setAction(R.string.yes, new View.OnClickListener() {                    @Override                    public void onClick(View v) {                        //My code...                    }                })                .addCallback(new Snackbar.Callback() {                    @Override                    public void onDismissed(Snackbar snackbar, int event) {                    }                    @Override                    public void onShown(Snackbar snackbar) {                    }               });
查看完整描述

2 回答

?
胡說叔叔

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊

下面的代碼顯示了“在”小吃欄顯示之后的警報(bào)對(duì)話框。


 @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


        Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content),

                "This is Snackbar", Snackbar.LENGTH_INDEFINITE).

                setAction(R.string.yes, new View.OnClickListener() {

                    @Override

                    public void onClick(View v) {


                    }

                }).addCallback(new Snackbar.Callback() {


            @Override

            public void onDismissed(Snackbar transientBottomBar, int event) {

                super.onDismissed(transientBottomBar, event);


            }


            @Override

            public void onShown(Snackbar sb) {

                super.onShown(sb);


            }

        });

        snackbar.show();

        showAlertDialog(this, "Alert!!", "Alert Dialog", "Yes", "No");

    }

showAlertDialog 是顯示對(duì)話框的簡單靜態(tài)方法


public static void showAlertDialog(Context context, String title, String message, String posBtnMsg, String negBtnMsg) {

        AlertDialog.Builder builder = new AlertDialog.Builder(context);

        builder.setTitle(title);

        builder.setMessage(message);

        builder.setPositiveButton(posBtnMsg, new DialogInterface.OnClickListener() {

            @Override

            public void onClick(DialogInterface dialog, int which) {

                dialog.cancel();

            }

        });

        builder.setNegativeButton(negBtnMsg, new DialogInterface.OnClickListener() {

            @Override

            public void onClick(DialogInterface dialog, int which) {

                dialog.cancel();

            }

        });

        AlertDialog dialog = builder.create();

        dialog.show();


    }

上面代碼的輸出屏幕截圖如下,

http://img1.sycdn.imooc.com//62b41a9e0001778f07191274.jpg

查看完整回答
反對(duì) 回復(fù) 2022-06-23
?
炎炎設(shè)計(jì)

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊

這個(gè)問題的答案在于Snackbar.setAction(CharSequence text, final View.OnClickListener listener)實(shí)現(xiàn)方式


如果您將此方法傳遞給非空文本或非空偵聽器,則顯示操作文本的 TextView 將設(shè)置一個(gè) OnClickListener,它BaseTransientBottomBar.dispatchDismiss(BaseCallback.DISMISS_EVENT_ACTION)會(huì)在執(zhí)行操作時(shí)調(diào)用。這會(huì)導(dǎo)致 Snackbar 被關(guān)閉。


為了防止這種情況,需要檢索 Snackbar 的操作視圖的 TextView,并使用不調(diào)用 dispatchDismiss() 的偵聽器覆蓋其 OnClickListener


這是Snackbar.setAction()供參考的代碼


public Snackbar setAction(CharSequence text, final View.OnClickListener listener) {


        final SnackbarContentLayout contentLayout = (SnackbarContentLayout) mView.getChildAt(0);

        final TextView tv = contentLayout.getActionView();


        if (TextUtils.isEmpty(text) || listener == null) {

            tv.setVisibility(View.GONE);

            tv.setOnClickListener(null);

        } else {

            tv.setVisibility(View.VISIBLE);

            tv.setText(text);

            tv.setOnClickListener(new View.OnClickListener() {

                @Override

                public void onClick(View view) {

                    listener.onClick(view);

                    // Now dismiss the Snackbar

                    dispatchDismiss(BaseCallback.DISMISS_EVENT_ACTION);

                }

            });

        }

        return this;

}


查看完整回答
反對(duì) 回復(fù) 2022-06-23
  • 2 回答
  • 0 關(guān)注
  • 160 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)