繁体   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