我正在创建一个典型的聊天应用程序,中间是一个RecyclerView,底部是消息传递控件。
我想显示一个绑定到RecyclerView的小吃栏(因此显示在Recyclerview的底部),以便将其显示在消息传递控件的上方而不是屏幕的底部。
当我设置snackbarChat = Snackbar.make(findViewById(R.id.recycler_view), "", Snackbar.LENGTH_INDEFINITE);
时,小吃栏仍会显示在屏幕底部(并覆盖消息传递控件),而不是RecyclerView底部所期望的那样。
问题:我如何将快餐栏装到Recyclerview的屏幕上?
感谢您的帮助!
答案 0 :(得分:1)
摘自make()
的文档:
Snackbar将尝试根据提供给
view
的值找到一个父视图来保存Snackbar的视图。 Snackbar将沿着视图树走,尝试找到合适的父级,将其定义为CoordinatorLayout
或窗口装饰的内容视图,以先到者为准。
因此,当您传递findViewById(R.id.recycler_view)
的结果时,make()
调用将查看RecyclerView的父级,以及父级的父级,依此类推,直到找到{{1 }}或进入主内容视图。
我敢打赌,您快要下半年了。
一种简单的解决方法是将CoordinatorLayout
包装在RecyclerView
中。在看不到布局XML的情况下,我无法确切地说出如何做到这一点,但您可能只想
CoordinatorLayout