【发布时间】:2018-12-02 18:55:39
【问题描述】:
我的活动 coord.xml:
<CoordinatorLayout>
id:coordID
<RelativeL>
...
<FAB>
RVAdapter.java
...
@Override
public void onItemDismiss(int position) {
...
notifyItemRemoved(position);
LayoutInflater inflater = (LayoutInflater) MyActivity.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.coord, null);
Snackbar.make(v.findViewById(R.id.coordID), "TEXT", Snackbar.LENGTH_LONG).show();
}
这是一种在自定义类 (RVAdapter.java) 中滑动以从回收器视图列表中删除项目的方法,在删除后,应出现 Snackbar 并为 UNDO 设置操作。但是,当我删除一个项目时,什么也没有发生。小吃店没有出现。我不太确定我是否正确设置了视图,但我不知道如何以不同的方式进行操作
【问题讨论】:
-
使用这个 Snackbar.make(v, "TEXT", Snackbar.LENGTH_LONG).show();
-
那个
View v你在那儿膨胀并没有附加到屏幕上的任何东西,所以Snackbar不会找到合适的View来锚定。您需要将View传递给它,它位于Activity的层次结构中。它可以是任何东西,真的;例如,RecyclerView。Snackbar将向上搜索以找到CoordinatorLayout本身。 -
@MikeM。我没有通过 View v = inflater 的视图...???该方法中有第二个和第三个参数,但对于第二个,我需要一个 ViewGroup,但我不知道从哪里得到它?
-
不,我是说
LayoutInflater和View v没有用,因为它从来没有附加到Activity。摆脱那些,并传递Snackbar.make()一些View,它们已经在Activity中。我只是建议RecyclerView,因为它是唯一的View,我相信你有。
标签: android android-recyclerview snackbar