2011-07-11 12 views
0

チャットアクティビティのカスタムアレーアダプタ(getViewメソッドをオーバーライドしたもの)を使用して、自分のアクティビティでListViewを使用しています。私はソフトキーボードのリストビュー(5 2に見える行から例えば)リサイズを開くが、GetViewメソッドは7回呼び出されたとき:リサイズ時のリストビュー行の冗長更新

 
07-11 11:59:13.185: DEBUG/*: [ChatMessageArrayAdapter] generating view for pos:5 
07-11 11:59:13.346: DEBUG/*: [ChatMessageArrayAdapter] generating view for pos:4 
07-11 11:59:13.485: DEBUG/*: [ChatMessageArrayAdapter] generating view for pos:3 
07-11 11:59:13.625: DEBUG/*: [ChatMessageArrayAdapter] generating view for pos:2 
07-11 11:59:13.775: DEBUG/*: [ChatMessageArrayAdapter] generating view for pos:1 
07-11 11:59:14.015: DEBUG/*: [ChatMessageArrayAdapter] generating view for pos:5 
07-11 11:59:14.135: DEBUG/*: [ChatMessageArrayAdapter] generating view for pos:4 

をどのように私は、このオーバーヘッドを防ぐことができますか?
thxです。

答えて

0

は、私の知る限りこれはあなたがgetView()への呼び出しを防ぐことはできませんが、プロセスのオーバーヘッドを最小限に抑えることができgetView();挙動正常です。 あなたは次のようなものを使用します:

public View getView(final int position, View convertView, ViewGroup parent) { 
    View row = null; 
    if(convertView == null) 
    { 
     row = LayoutInflater.from(mContext).inflate(R.layout.row, null); 
     //initialize and set values of components inside row for the first time. 
    } 
    else 
    { 
     row = convertView; 
    } 
    return row; 
} 
+0

はい、私は再利用に関する意見を知っています。ありがとう。 –