2010-03-05 71 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" />