2010-05-31 72 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> 

其中android spinner根據數據更改其寬度。 我想阻止它。

任何人都可以指導我如何實現這一目標?

任何幫助將appriciated。

回答

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

您可以使用「機器人: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的值。