簡體   English   中英

如何在 Android 片段中制作 SnackBar?

[英]How to make SnackBar in Android Fragment?

如何在 Android 片段中制作 SnackBar?

我應該在什么背景下要求它?

 override fun onTaskLongClick(task: Task) {        
        Snackbar.make(view!!.rootView, "Long Click removed...", Snackbar.LENGTH_LONG).show()
    }

這段代碼無論如何都可以工作,但它涵蓋了軟鍵。

您傳遞一個不是CoordinatorLayout的 View, Snackbar將沿着樹向上走,直到找到CoordinatorLayout或布局的根。

  rootlayout = (CoordinatorLayout) rootView.findViewById(R.id.coordinatorLayout);

Snackbar

Snackbar snackbar = Snackbar.make(rootlayout , "Snackbar test", Snackbar.LENGTH_SHORT);
                            View sbView = snackbar.getView();
                            TextView textView = (TextView) sbView.findViewById(android.support.design.R.id.snackbar_text);
                            textView.setTextColor(Color.YELLOW);
                            snackbar.show(); 

方法不對 1。

 override fun onTaskLongClick(task: Task) {        
        Snackbar.make(view!!.rootView, "Long Click removed...", Snackbar.LENGTH_LONG).show()
    }

此代碼將涵蓋手機的軟件按鈕。 完全不好。 在此處輸入圖像描述

錯誤的方式2。

override fun onTaskLongClick(task: Task) {     
Snackbar.make(activity!!.findViewById(android.R.id.content), "Long Click removed..."
, Snackbar.LENGTH_LONG).show()
    }

這種方式似乎工作正常,但它覆蓋了浮動按鈕,用戶無法移除。 這意味着用戶必須等到 SnackBar 消失。 與 activity_main 相比,android.R.id.content 的布局似乎不同。 在此處輸入圖像描述

正確的路!

override fun onTaskLongClick(task: Task) {       
        Snackbar.make(activity!!.findViewById(R.id.activity_main), "Long Click removed...", Snackbar.LENGTH_LONG).show()
    }

將id添加到activity_main.xml布局並通過findviewbyid調用布局。 這種方式就像我們一直認為的那樣正常工作。 在此處輸入圖像描述

暫無
暫無

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

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