Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 删除项目会使recyclerview显示第一个项目_Android_Android Layout_Android Recyclerview_Android Adapter - Fatal编程技术网

Android 删除项目会使recyclerview显示第一个项目

Android 删除项目会使recyclerview显示第一个项目,android,android-layout,android-recyclerview,android-adapter,Android,Android Layout,Android Recyclerview,Android Adapter,我有一个RecyclerView,当我想删除一个项目时,我称之为: Tipss.remove(position); //Tipss is my array adapter.notifyItemRemoved(position); rv.setAdapter(adapter) adapter.notifyDataSetChanged(); 我的问题是,在删除视图后,RecyclerView会全部返回到Begging。我知道这是因为正在调用rv.setAdapter(adapter)。如果我删除该

我有一个
RecyclerView
,当我想删除一个项目时,我称之为:

Tipss.remove(position); //Tipss is my array
adapter.notifyItemRemoved(position);
rv.setAdapter(adapter)
adapter.notifyDataSetChanged();

我的问题是,在删除视图后,
RecyclerView
会全部返回到Begging。我知道这是因为正在调用
rv.setAdapter(adapter)
。如果我删除该行,下一个视图(位置后面的视图)将具有删除的视图的高度,这将破坏布局。有人能帮我吗
rv.setHasFixedSize()
不起作用。

这两行不是必需的

rv.setAdapter(adapter)
adapter.notifyDataSetChanged();

如果您的recyclerView需要根据每行的某些条件具有不同的属性,那么在
onBindViewHolder()

中定义这两行不是必需的

rv.setAdapter(adapter)
adapter.notifyDataSetChanged();

如果您的recyclerView需要根据每行的某些条件具有不同的属性,那么在
onBindViewHolder()

中定义
adapter.notifyItem…
的整个点,这样您就不必每次重新绘制所有内容时都调用
notifyDatasetChanged()
不起作用,因为它们没有固定的位置或
如果我删除该行,下一个视图(位置后的视图)将具有删除视图的高度,并且不会破坏布局。尝试只使用
notifyItemRemoved(位置)
它应该为您更新
适配器的整个要点。notifyItem…
这样您就不必每次重新绘制所有内容时都调用
notifyDatasetChanged()
,因为它们没有固定的站点,或者
如果我在下一个视图(位置后的视图)中删除该行,那么它就不起作用了将具有移除的高度,而这只会破坏布局
不会发生。尝试只使用
notifyItemRemoved(位置)它应该为您更新,但是我应该如何调整高度?我在问题中已经提到,如果我移除
rv.setAdapter(adapter)
下一个视图将具有移除视图的重量。您是否尝试移除两行而不仅仅是rv.setAdapter()?是的,我尝试了所有操作。关于您的建议,如果我移除适配器中的一个或两个,行为是相同的。然后可能尝试使用以下组合:Tipss.remove(position)//Tipss是我的阵列适配器;有了这条线,它仍然可以调整大小,但不去乞讨。我不想让它调整大小,也不想去乞讨。但我该怎么做的高度调整?我在问题中已经提到,如果我移除
rv.setAdapter(adapter)
下一个视图将具有移除视图的重量。您是否尝试移除两行而不仅仅是rv.setAdapter()?是的,我尝试了所有操作。关于您的建议,如果我移除适配器中的一个或两个,行为是相同的。然后可能尝试使用以下组合:Tipss.remove(position)//Tipss是我的阵列适配器;有了这条线,它仍然可以调整大小,但不去乞讨。我希望这个不调整大小,不去乞讨。