短いバージョン:
@Alexロックウッドさんを読み、JEETの答え@してください。
私の答え:なぜ前
、優れている/ getView()
でconvertView
を使用しての適切方法はありますか?このvideoのRomain Guyによってよく説明されています。上記
例、
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View rowView = convertView;
ViewHolder holderObject;
if (rowView == null) {
rowView = inflater.inflate(R.layout.list_single_post_or_comment, parent, false);
holderObject = new HolderForContent();
mapHolder(holderObject, rowView);
rowView.setTag(holderObject);
} else {
holderObject = (HolderForContent) convertView.getTag();
}
setHolderValues(holderObject, position);
return rowView;
}
private class ViewHolder {
TextView mTextView;
}
mapHolder(holderObject, rowView) {
//assume R.id.mTextView exists
holderObject.mTextView = rowView.findViewById(R.id.mTextView);
}
setHolderValues(holderObject, position) {
//assume this arrayList exists
String mString = arrayList.get(position).mTextViewContent;
holderObject.mTextView.setText(mString);
}
一例であり、あなたは、パターンのいずれかのタイプに従うことができます。しかしはこの、
今
convertView
の
目的に来
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
// todo : inflate rowView. Map view in xml.
} else {
// todo : get already defined view references
}
// todo : set data to display
return rowView;
}
を覚えています。 なぜ?
convertView
が既に作成されたビューを再作成しないことによってパフォーマンスの最適化 [ロマンガイによってスライド14にseeチャート]のために使用されます。
ソース: 修正が歓迎されます。私は実際にこれらのリンクを通じてこの情報を集めました。
documentationのgetView()
についてはこちらをご覧ください。
ロマンガイについてはgetView()
をvideoで、Google IO 2009で「Turbo Charge Your UI」、プレゼンテーションにはmaterialを使用しています。
すばらしいblog Lucas Rocha。
ソースコードを深く掘り下げたい人:ListViewとimplementationがgetView()
のサンプルは、arrayAdapterのソースコードにあります。
よくある投稿です。
how-do-i-choose-convertview-to-reuse
how-does-the-getview-method-work-when-creating-your-own-custom-adapter
出典
2016-09-21 17:36:58
tpk
だから私は、XMLファイルを膨張させることなく、私の見解を構築する場合、私はconvertViewを使用する必要がありますか? –
@DanChaltielはい、あなたは – localhost