2011-11-09 6 views
0

画面のための主要なレイアウトです:Androidのリストビュー幅PROB

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/splashContent" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/splashscreenbg"> 
    <TableRow 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight=".008" 
     android:gravity="center" 
     android:background="@drawable/mbstabtitle_bg" 
     android:paddingTop="5dip" 
     android:paddingBottom="5dip"> 
     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:gravity="center" > 
      <TextView 
       android:id="@+id/mbstabtitle_bg" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textSize="20sp" 
       android:textStyle="bold" 
       android:text="Please Select Your Location" 
       android:textColor="#FFFFFF"> 
      </TextView>  
     </LinearLayout> 
    </TableRow> 
    <TableRow 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:gravity="top" 
     android:layout_weight=".99"> 
     <ListView 
      android:id="@+id/locationlist" 
      android:background="#7B0326" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 
     </ListView> 
    </TableRow> 
</TableLayout> 

そしてここでは、リストビューを移入するために使用アダプタです。

class LocationAdapter extends BaseAdapter { 
     private Activity activity; 
     private String[][] data; 
     private LayoutInflater inflater=null; 

     public LocationAdapter(Activity a, String[][] d) { 
      activity = a; 
      data=d; 
      inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     } 

     public int getCount() { 
      return data.length; 
     } 

     public Object getItem(int position) { 
      return position; 
     } 

     public long getItemId(int position) { 
      return position; 
     } 

     public View getView(int position, View convertView, ViewGroup parent) { 
      View vi=convertView; 
      ViewHolder holder; 
      if(convertView==null){ 
       vi = inflater.inflate(R.layout.locationitem, null); 
       holder=new ViewHolder(); 
       holder.locationName=(TextView)vi.findViewById(R.id.locationName); 

       vi.setTag(holder); 
       if(position%2 == 0) 
        vi.setBackgroundColor(0xFF4D0418); 
       else 
        vi.setBackgroundColor(0xFF7B0326); 
      } 
      else 
       holder=(ViewHolder)vi.getTag(); 

      holder.locationName.setText(data[position][1]);   

      vi.setId(Integer.parseInt(data[position][0])); 

      return vi; 
     } 

     class ViewHolder { 
      TextView locationName; 
     } 
    } 

これは、項目(locationitem.xml)のxmlです。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center_vertical"> 
    <ImageView 
     android:id="@+id/centerbullet" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="3dip" 
     android:src="@drawable/centerbullet"/> 
    <TextView android:id="@+id/locationName" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textStyle="bold" 
     android:paddingLeft="10dip" 
     android:text="hello hello egele efsdffgxnd" 
     android:textSize="15dip" /> 
</LinearLayout> 

今私の問題は、私はそれが可能な合計幅を取ることを望む一方で、それは、表示するのに必要なだけの最小の幅を取って、その中にListViewコントロールとアイテムです。私のコードの問題は何ですか?

+2

を使用することができます。.. – Hanry

+0

1トリックのために、それはテーブルの行に重みを与え、まだ解決策を見つけることが可能です教えてください..はい、どうですか?あなたの答えは以下のとおりです。 – MKJParekh

+0

はい、layout_weightを指定することはできますが、widthではなくheightに適用されます。幅の場合は、android:layout_width = "fill_parent"を使用します。 –

答えて

2

android:layout_weight = "1" ListViewで問題を解決しました。

-1

使用ではなく、テーブルの行のリストビューで直接体重を設定してみてくださいスタイル

style="?android:attr/spinnerItemStyle"