ListView使用テクニック

2513 ワード

『Android群英伝』読書記録
1、ViewHolderモードを使用して効率を高める
   Adapter        ViewHoleder ,               。
  ......
    @Override
public View getView(int positon ,View contentView ,ViewGroup parent){
        ViewHolder holder = null;
            //      
        if ( convertView == null ){
            holder = new ViewHolder();
            convertView= mInflater.inflate(R.layout.view_item,null);
            holder.img = (ImageView) convertView.findViewById(R.id.iv);
            holder.title = (TextView) convertView.findViewById(R.id.tv);
            convertView.setTag(holder);
    }else{
            //  tag      
            holder = (ViewHolder)convertView.getTag();
    }
      holder.img.setBackgroundResource(R.mipmap.background);
      holder.title.setText(mData.get(position));

      return  convertView;
}

public final class ViewHolder{
    public  ImageView img;
    public  TextView  title;
}
......

2、分割線の設定
android:divider="@android:color/red”
android:dividerHeight="10dp"

android:divider="@null”//  

3、スクロールバーを隠す
android:scrollbars = "none"

4、ListViewのitemクリックをキャンセルする効果
android:listSelector = "#00000000"
android:listSelector = "@android:color/transparent"

5、ListViewを設定するにはいくつかの項目に表示する必要がある
listview.setSelection( n );

6、動的更新データ
listview.notifyDataSetChanged();
         list      list

7、LlistViewのすべてのitemを遍歴する
  for(int i = 0; i < mListView.getChildCount();i++){
    View = view = mListView.getChildAt(i);
}

8、空のlistviewを処理する
 listview.setEmptyView(findViewById(R.layout.empty_view));

9、スライドモニター
OnTounchListenerは、event.getAction()によって返される3つのイベントに従って、View内のリスニングイベントが対応する論理を処理する.ACTION_DOWN(タッチ時操作)、ACTION_MOVE(移動時操作)とACTION_UP(離脱時操作)
OnScrollListenerはAbsListViewのリスニングイベントで、onScrollStateChanged()とonScroll()の2つのコールバックメソッドがあります.
onScrollStateChangedメソッドは、パラメータscrollStateに基づいてコールバック回数を決定します.scrollStateには3つのモードがあります.SCROLL_STATE_IDLE:スクロール停止時SCROLL_STATE_TOUCH_SCROLL:スクロール中のSCROLL_STATE_FLING:指が動いた時、つまり力を入れてスライドした後、離れた後にリストビューが慣性でスライドし続ける状態.投げた状態がない場合,この方法は2回コールバックし,そうでなければ3回コールバックする.
onScrollメソッドは、listviewスクロール時に常にコールバックされ、メソッドの3つのintパラメータが現在のlistviewのスクロール状態を表示します.firstVisibleItem:現在表示されている最初のitemのid(0から)visibleIteenCount:現在表示されているitemの総数(完全な表示がなく、半分の表示も含む)totalItemCount:listview全体のitemの総数