2008年6月27日 星期五

親愛的,我把 AutoCompleteTextView 縮小了

Yes! I finally can change the size of AutoCompleteTextView.

Android SDK 中有個好用的 AutoCompleteTextView widget。寫起來簡單,不用幾行程式,就可以完成一個有具有自動完成的編輯器。 底下是原文件上的範例程式,和截圖。為了說明問題,我又多加了幾個國家名稱。

現在問題來了,這預設的 auto complete list 似乎太大了。一個螢幕列出兩個國家就滿了。手機螢幕大的話,問題不大。要是手機是小螢幕,這可就難用了。

要如何才能將這 list 的高度縮小,一次列出更多的國家呢?

研究了半天,發現問題出在 android.R.layout.simple_list_item_1

android.R.layout 告訴我,這是 Android 預附的 layout xml 檔。花了點時間,終於找到這個檔案,其內容如下:

原來這 auto complete list 中的 TextView,就是依照這個 xml 的定義來產生。要改變 TextView 的大小,可以加個 android:textSize="14sp"。底下就是我新增的 small_list_item_1.xml 檔。將他放在 layout 的目錄下。

並且將原程式中的第 5~6 行,改成: 這是改完後的結果,是不是好多了。

要修改 list 的大小,這是最簡單的方法。另一個方法是自己寫個 ArrayAdapter,然後在 getView() 中,產生個 TextView 給 AutoCompleteTextView。

沒有留言:

張貼留言