【问题标题】:How to make SnackBar in Android Fragment?如何在 Android Fragment 中制作 SnackBar?
【发布时间】:2021-03-23 12:50:41
【问题描述】:

如何在Android Fragment中制作SnackBar?

我应该在什么上下文中调用它?

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

这段代码仍然可以工作,但它涵盖了软键。

【问题讨论】:

    标签: android kotlin android-fragments android-snackbar


    【解决方案1】:

    错误的方式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()
        }
    

    在activity_main.xml布局中添加id并通过findviewbyid调用布局。这种方式就像我们一直认为的那样正常工作。

    【讨论】:

      【解决方案2】:

      您传递一个不是CoordinatorLayout 的视图,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(); 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多