2013-08-22 29 views
13

私はセルの再利用に取り組んでいますが、現在私はアダプタのgetviewメソッドで作業しています。私のgetviewメソッドは9回呼び出されていますが、私は5行しか表示していないからです。Getviewはアンドロイドで複数回呼び出されました

public View getView(int position, View view, ViewGroup viewgroup) 
{ 
    ViewHolder holder=null; 

    if(view==null) 
     { 
       view = inflater.inflate(R.layout.my_row_layout, viewgroup, false); 
       Log.d("Testing","View is nuLL"); 
       holder.thumbnils = (ImageView)view.findViewById(R.id.Thumbnils); 
        holder.hover =(ImageButton)view.findViewById(R.id.hover); 
        holder.title =(TextView)view.findViewById(R.id.title); 
        holder.hoveroverlay =(ImageView)view.findViewById(R.id.hoveroverlay); 
       }view.setTag(holder); 
      } 
     else 
    { 
     Log.d("Testing","view is not null"); 

     holder = (ViewHolder) view.getTag(); 
     } 

      return view; 
     } 

      @Override 
public int getCount() { 
    // TODO Auto-generated method stub 

    if(data.size()%NumberOfCell==0) 
    { 
     //return Number rows in listview 
     return data.size() /NumberOfCell; 

    } 
    else 
    { 
     //If total number of videos are ODD than display one row extra for remaining videos 
     return data.size() /NumberOfCell+1; 
    } 

} 

@Override 
public Object getItem(int position) { 
    // TODO Auto-generated method stub 
    return null; 
} 

@Override 
public long getItemId(int position) { 
    // TODO Auto-generated method stub 
    return 1; 
} 

    Here is my xml 

<ListView 
    android:id="@+id/listView1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_above="@+id/imageView2" 
    android:layout_alignLeft="@+id/linearLayout1" 
    android:layout_below="@+id/linearLayout1" 
    android:scrollbars="none" 
    android:divider="#000000" 
     android:dividerHeight="2dp" 
    > 
</ListView> 
    </RelativeLayout> 

みんな が

public View getView(int position, View convertView, ViewGroup viewgroup) 
{ 
View view = convertView; 
    ViewHolder holder=null; 

    if(convertView==null) 
     { 
       view = inflater.inflate(R.layout.my_row_layout, viewgroup, false); 
       Log.d("Testing","View is nuLL"); 
       holder.thumbnils = (ImageView)view.findViewById(R.id.Thumbnils); 
        holder.hover =(ImageButton)view.findViewById(R.id.hover); 
        holder.title =(TextView)view.findViewById(R.id.title); 
        holder.hoveroverlay =(ImageView)view.findViewById(R.id.hoveroverlay); 
       view.setTag(holder); 
      } 
     else 
    { 
     Log.d("Testing","view is not null"); 

     holder = (ViewHolder) view.getTag(); 
     } 
} 
+0

ここであなたのビューを膨らませることができますか? – Piyush

+0

申し訳ありませんが、私は問題のinflatコードを入力することを忘れていました.. –

+0

Ok ....いいえ....そして、CountとGetItemメソッドを取得すると返りますか? – Piyush

答えて

61

はあなたのリストビューを作成します...このように試してみてください.........

+1

これは動作しますが、奇妙な問題です。なぜ動作しますか? –

+6

@NSArray Romain Guyが答えたところではこれは問題ではないが、getView()が何回呼び出されるか何回になるかは保証されていない。あなたの特定のケースでは、ListViewで可能な最悪のことは、height = wrap_contentにすることです。これにより、ListViewはレイアウト時にアダプタからいくつかの子供を測定し、どの程度の大きさであるべきかを知ることができます。これはListViewに、あなたがスクロールする前でもgetView()に渡されたconvertViewsを提供するものです。 –

+0

@NSArray詳細を参照してください私のポストhttp://stackoverflow.com/a/14108676/1939564 –

0

をありがとう、私を助けてください高さはfill_parentに等しく、もう一度試してください。

関連する問題