2010-03-05 94 views
3

这里是我的布局Android:如何设置微调器的最大尺寸?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="fill_parent" android:id="@+id/LinearLayout01" 
     android:layout_height="wrap_content"> 

    <Spinner android:text="@+id/AutoCompleteTextView01" 
         android:id="@+id/Spinner01" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:width="130dp"></Spinner> 
    <EditText android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
      android:id="@+id/Chapter" android:width="30dp"></EditText> 
    <TextView android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/TextView01" android:text=":"></TextView> 
    <EditText android:layout_height="wrap_content" 
       android:layout_width="wrap_content" android:id="@+id/Verse" 
       android:width="40dp"></EditText> 

</LinearLayout> 

我夸大这种布局为AlertDialog的观点。但是,当我选择一个大元素时,文本字段被推出到右侧。有没有什么方法可以设置微调器的最大尺寸,所以在选择一个元素后,它会用省略号(“...”)或其他东西缩短选择范围?

回答

4

Spinner集的大小有android:layout_width="wrap_content"由其内容决定。如果您希望删除某些内容,那么在创建行视图时,这取决于您的SpinnerAdapter

或硬线android:layout_width固定大小。

或者,而不是使用LinearLayout,使用RelativeLayout和组织您的规则使得Spinner占据了该行的剩余空间,将其固定在屏幕的左侧和第一EditText的左侧。虽然我不是100%确定如果内容太大会发生什么情况 - 它可能只是被截断。

3

不需要使用自定义适配器。使用android.R.layout.simple_spinner_item,然后将其从椭圆选框更改为结束椭圆。然后将您的新更改布局文件设置为布局ID或使用此布局文件

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    style="?android:attr/spinnerItemStyle" 
    android:singleLine="true" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingRight="10dp" 
    android:ellipsize="end" />