我有两种不同类型的视图用于不同的行,一种视图用于加载内容。对于我想要的第一行使用medicResults1数组,对于我想要的其他行使用medicResults2数组。在result1和result2加载之前,进度条会加载。
在教程中,对于一个视图和进度条,它执行以下操作:
private static final int ITEM = 0;
private static final int LOADING = 1;
private boolean isLoadingAdded = false;
private List<LastMedicResult1> medicResults1;
private List<LastMedicResult2> medicResults2;
@Override
public int getItemViewType(int position) {
return (position == medicResults1.size() - 1 && isLoadingAdded) ? LOADING : ITEM;
}
我无法理解这段代码。这里的立场是什么?我怎么能得到这样的东西:
@Override
public int getItemViewType(int position) {
if(medicResults1) return ITEM
elseif(medicResults2) return ITEM2
else return LOADING
}
xml代码也是:
<android.support.v7.widget.RecyclerView
android:id="@+id/main_recycler1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:clipToPadding="false"
android:clipChildren="false"
tools:listitem="@layout/service_list1"/>
<ProgressBar
android:id="@+id/main_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
我还必须为第二个数组(medicResults2)创建另一个像这样的RecyclerView吗?:
<android.support.v7.widget.RecyclerView
android:id="@+id/main_recycler2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:clipToPadding="false"
android:clipChildren="false"
tools:listitem="@layout/service_list2"/>
<android.support.v7.widget.RecyclerView
android:id="@+id/main_recycler1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:clipToPadding="false"
android:clipChildren="false"
tools:listitem="@layout/service_list1"/>
<ProgressBar
android:id="@+id/main_progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"/>