如何在android的单个片段中隐藏回收器视图的视图(但在两个片段中使用相同的列表)
Posted
技术标签:
【中文标题】如何在android的单个片段中隐藏回收器视图的视图(但在两个片段中使用相同的列表)【英文标题】:How to hide a view of recycler view in a single fragment in android (But using same list in two fragments) 【发布时间】:2021-04-19 05:00:39 【问题描述】:我在两个片段中使用回收器视图。
但其中一个片段不需要显示特定视图。但需要在另一个屏幕中显示所有视图。
如何在我的片段中单独隐藏该特定视图
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linear"
android:layout_
android:layout_
android:orientation="vertical">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearlayout"
android:layout_
android:layout_
android:orientation="horizontal"
>
<ImageView
android:id="@+id/imageView"
android:layout_
android:layout_
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:background="@drawable/corner_radius"
/>
<LinearLayout
android:layout_
android:layout_
android:layout_marginTop="15dp"
android:orientation="vertical">
<TextView
android:id="@+id/header"
android:layout_
android:layout_
android:gravity="left"
android:foregroundGravity="center_horizontal"
android:layout_marginLeft="10dp"
android:textColor="@color/white_new"
android:textSize="20dp"/>
<TextView
android:layout_
android:layout_
android:gravity="left"
android:foregroundGravity="center_horizontal"
android:layout_marginLeft="10dp"
android:textColor="@color/gray"
android:textSize="18dp"/>
</LinearLayout>
</LinearLayout>
<View style="@style/Divider.Horizontal.Gray" android:id="@+id/divider" android:layout_marginTop="10dp" android:layout_marginBottom="10dp"/>
</LinearLayout>
【问题讨论】:
使用活动范围内的视图模型,并根据当前显示的片段,采取所需的操作 你能提供任何样品吗 【参考方案1】:为什么不为此或使用 if 条件
yourAdapter(isoneFramgent:Boolean)
如果从您的片段发送 true 和 false,如果它从第一个片段发送 true 并且从第二个片段发送 false 并添加一个 if 条件到 bindView 以根据片段显示和隐藏您的视图
【讨论】:
如何在一个片段中只显示两个项目,而在另一个片段中显示所有项目 在绑定视图中使用 this if (isoneFragment==true) //隐藏所有其他项目并仅显示两个else //此处显示AllItem 【参考方案2】:在将其设置为adapter
之前过滤您的数据源,并将过滤后的数据传递给一个fragment
,并将原始数据传递给另一个片段。
假设你有字符串列表
val originalData = listOf("data") //this is your raw list
//Fragment 1
val f1Data = ArrayList(originalData.filter //filter one item )
val f1Adapter = YourAdapter(f1Data)
//Fragment 2
val f2Adapter = YourAdapter(originalData)
【讨论】:
我只需要隐藏视图。你能告诉我为什么过滤器需要在这里以上是关于如何在android的单个片段中隐藏回收器视图的视图(但在两个片段中使用相同的列表)的主要内容,如果未能解决你的问题,请参考以下文章
android如何使用listview而不是scrollview