今天在Android Developers查看AutoCompleteTextView 時發現示例代碼 java
- public class CountriesActivity extends Activity {
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.countries);
-
- ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
- android.R.layout.simple_dropdown_item_1line, COUNTRIES);
- AutoCompleteTextView textView = (AutoCompleteTextView)
- findViewById(R.id.countries_list);
- textView.setAdapter(adapter);
- }
-
- private static final String[] COUNTRIES = new String[] {
- "Belgium", "France", "Italy", "Germany", "Spain"
- };
- }
中有android.R.layout.simple_dropdown_item_1line,一直只是從名字來判斷它是簡單的一行下拉項目,而沒有好好的去弄清楚這究竟是什麼。今天決定好好看看這個文件究竟是 android
什麼意思。首先從android.R.layout能夠看出它是一個layout資源,故直接進入E:\Java\android-sdk-windows\platforms\android-8\data\res\layout(個人android-sdk-windows是安裝在java下的;我選的開發版本是android2.2,其API Version是8,故選android-8目錄),找到simple_dropdown_item_1line.xml: windows
- <?xml version="1.0" encoding="utf-8"?>
- <TextView xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@android :id/text1"
- style="?android:attr/dropDownItemStyle"
- android:textAppearance="?android:attr/textAppearanceLargeInverse"
- android:singleLine="true"
- android:layout_width="match_parent"
- android:layout_height="?android:attr/listPreferredItemHeight"
- android:ellipsize="marquee"
- />
再進入E:\Java\android-sdk-windows\platforms\android-8\data\res\values找到attr.xml文件能夠找到 app
- <!-- Default style for drop down items. -->
- <attr name="dropDownItemStyle" format="reference" />
- <!-- Text color, typeface, size, and style for "large" inverse text.
- Defaults to primary inverse text color. -->
- <attr name="textAppearanceLargeInverse" format="reference" />
能夠看出此TextView的樣式是dropDownItemStyle即默認的下拉條目樣式;文本外觀是textAppearanceLargeInverse即大反差文本。 測試
ellipsize屬性即當文本不能徹底顯示時,文本的顯示方式。有五種樣式可選。 ui
Constant |
Value |
Description |
none |
0 |
無樣式 |
start |
1 |
前面文本不顯示 |
middle |
2 |
中間的文本不顯示 |
end |
3 |
末尾的文本不顯示 |
marquee |
4 |
跑馬燈風格 |
爲了方便觀察將示例中的字符串改成: String[] strs={"abcdefg","abcdefghi","abcghijkl","abcdfghjklzxcvbnmqwertyuiopasdfghjklzx"};
測試效果以下: