2010-05-31 3 views
2

Я создал следующий макет.android spinner ширина проблема?

<TableLayout android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     > 
     <TableRow> 


<TextView android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:text="Post As" /> 


<Spinner 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/ddlPostAs" 
     /> 
     </TableRow> 
     <TableRow> 
<TextView android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:text="Expires In" /> 

<Spinner 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/ddlExpiryOn" 

     /> 
</TableRow> 
</TableLayout> 

, в котором инвертор андроида изменяет свою ширину в соответствии с данными. Я хочу остановить его.

Может ли кто-нибудь посоветовать мне, как этого достичь?

любая помощь будет назначена.

ответ

5

Установив ширину в соответствии с шириной экрана.

DisplayMetrics d = new DisplayMetrics(); 
getWindow().getWindowManager().getDefaultDisplay().getMetrics(d); 
int wdt = d.widthPixels; 
ddlpostas.getLayoutParams().width = wdt - 120; 
ddlexpiryon.getLayoutParams().width = wdt - 120; 
2

Вы можете использовать «Android: weightSum» на вашем <TableRow> для регулировки ширины закрепленную на экране.

Пример:

<TableRow android:weightSum="2"> 

      <TextView android:layout_width="0dp" 
       android:layout_gravity="center_vertical" 
       android:layout_height="wrap_content" android:text="Post As" 
       android:layout_weight="1"/> 

      <Spinner 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:id="@+id/ddlPostAs" 
       android:layout_weight="1" 
       /> 
     </TableRow> 

По этому коду ваша ширина вертушка будет установлена ​​как половина ширины вашего TableRow.

Измените значения android: weightSum и android: layout_weight согласно вашему требованию.