如何在 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()
}
这段代码无论如何都可以工作,但它覆盖了软键。
方法错误1.
override fun onTaskLongClick(task: Task) {
Snackbar.make(view!!.rootView, "Long Click removed...", Snackbar.LENGTH_LONG).show()
}
这段代码会覆盖phone的软件按钮。完全一点都不好。
方法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 调用布局。这种方式和我们一直想的一样正确。
您传递的视图不是 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();
如何在 Android 片段中制作 SnackBar?
我应该调用什么上下文?
override fun onTaskLongClick(task: Task) {
Snackbar.make(view!!.rootView, "Long Click removed...", Snackbar.LENGTH_LONG).show()
}
这段代码无论如何都可以工作,但它覆盖了软键。
方法错误1.
override fun onTaskLongClick(task: Task) {
Snackbar.make(view!!.rootView, "Long Click removed...", Snackbar.LENGTH_LONG).show()
}
这段代码会覆盖phone的软件按钮。完全一点都不好。
方法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 调用布局。这种方式和我们一直想的一样正确。
您传递的视图不是 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();