为回收器适配器中的一个Array项膨胀两个视图

时间:2016-06-23 12:45:06

标签: java android xml android-recyclerview recycler-adapter

我有 cardView xml

我的模特人

enter image description here

我的适配器非常通用,附加代码显示错误,因此不附加

我为适配器

初始化了一个Arraylist
persons = new ArrayList<>();
persons.add(new Person("Emma Wilson", "25 years old", 1));
persons.add(new Person("Lavery Maiss", "27 years old", 2));
persons.add(new Person("Lillie Watts", "35 years old", 3));

如果年龄= 25 ,如 Emma Wilson ,对于一个人,我想要充气  查看(cardView.xml)两次

我无法更改 ArrayList

我想使用适配器本身。这是可能的,怎么做?

1 个答案:

答案 0 :(得分:1)

您可以制作包含cardView.xml两次的视图。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <include android:id="@+id/cv1" layout="@layout/card_view.xml" />
    <include android:id="@+id/cv2" layout="@layout/card_view.xml" />

</LinearLayout>

然后在你的适配器中,

@Override
public View getView(int position, View convertView, ViewGroup parent) {
   // Get the data item for this position
   Person person = getItem(position);    
   // Check if an existing view is being reused, otherwise inflate the view
   if (person.age == 25) {
      convertView = LayoutInflater.from(getContext()).inflate(R.layout.twice.xml, parent, false);
   }else{
      convertView = LayoutInflater.from(getContext()).inflate(R.layout.once.xml, parent, false);
  }

  //populate views...


}