2010-05-31 115 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的值。