nan*_*i10 5 android android-recyclerview
这是我当前的代码。我想隐藏我的特定项目,recyclerview但当我使用时visibility.gone仍然占用回收视图上的空间。我还尝试了所有可能的解决方案如何在特定条件下从回收站视图中隐藏项目?任何帮助
for(int j =0; j < minusList.size(); j++){
int availableRooms = minusList.get(j);
if(norooms > availableRooms){ //norooms is the number of rooms wanted
holder.itemView.setVisibility(View.GONE);
mAdapter.notifyItemRemoved(position);
}else{
holder.rRoomsLeft.setText("Room available");
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的 XML
<android.support.v7.widget.RecyclerView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="false" />
Run Code Online (Sandbox Code Playgroud)
holder.itemView.setVisibility(View.GONE);这在 RecyclerView 中不起作用。
itemView是 RecyclerView 中的子视图。与其他 ViewGroup(FrameLayout 等)不同,RecyclerView 在布局过程中忽略子视图的可见性。
选项1 使用常规视图组(例如 FrameLayout)来包装您的真实布局,并隐藏您的真实布局:findViewById(R.id.layout_to_hide).setVisibility(View.GONE)
<FrameLayout android:layout_width="match_parent"\n android:layout_height="wrap_content">\n\n <LinearLayout android:id="@+id/layout_to_hide"\n android:layout_width="match_parent"\n android:layout_height="wrap_content">\n //Put here your views\n </LinearLayout>\n</FrameLayout>\nRun Code Online (Sandbox Code Playgroud)\n选项2将itemView\xe2\x80\x99s 高度更改为0,这样我们就看不到它
\nholder.itemView.setLayoutParams(new RecyclerView.LayoutParams(0, 0));\nRun Code Online (Sandbox Code Playgroud)\n选项3 如果此项不应该出现在列表中,则只需不要将其放入适配器数据中,或者将其删除。
\n1. 为什么其他视图组(例如 FrameLayout)可以很好地满足儿童的可见性?
\n如果子项消失了,他们不会计算子项的布局参数
\n\n\n\n2. 为什么RecyclerView没有?
\n如果子视图已经消失,RecyclerView 仍然会计算子视图的布局参数,因此它仍然占用空间。
\n\n请试试这个
for(int j =0; j < minusList.size(); j++){
int availableRooms = minusList.get(j);
if(norooms > availableRooms){ //norooms is the number of rooms wanted
holder.itemView.setVisibility(View.GONE);
mAdapter.notifyItemRemoved(position);
}else{
holder.itemView.setVisibility(View.VISIBLE);
holder.rRoomsLeft.setText("Room available");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2186 次 |
| 最近记录: |