例えば、3種類のviewが存在する場合、
int getItemViewType(int position) { return position % 3; // 行じ応じたViewのタイプを返す。タイプは0,1,2,3...と0始まりであること。 } int getViewTypeCount() { return 3; // Viewのタイプの数 }としておく。
View getView(int position, View convertView, ViewGroup parent)に渡されてくるconvertViewには再利用されるべきViewが渡されてくるのだが、上記のようにgetItemViewType()とgetViewTypeCount()をoverrideしていれば、そのpositionに応じた正しい種類のViewがconvertViewに渡されてくる。
コード例:
int getItemViewType(int position) { return position % 3; // 行じ応じたViewのタイプを返す。タイプは0,1,2,3...と0始まりであること。 } int getViewTypeCount() { return 3; // Viewのタイプの数 } View getView(int position, View convertView, ViewGroup parent) { switch (getItemViewType(position)) { case 0: if (convertView == null) { convertView = inflater.inflate(R.layout.item1, parent, false); } break; case 1: if (convertView == null) { convertView = inflater.inflate(R.layout.item2, parent, false); } break; case 2: if (convertView == null) { convertView = inflater.inflate(R.layout.item3, parent, false); } break; } return convertView; }
0 件のコメント:
コメントを投稿