simple_dropdown_item_1line

今天在Android Developers查看AutoCompleteTextView 時發現示例代碼 java

  1. public class CountriesActivity extends Activity {  
  2.     protected void onCreate(Bundle icicle) {  
  3.         super.onCreate(icicle);  
  4.         setContentView(R.layout.countries);  
  5.   
  6.         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,  
  7.                 android.R.layout.simple_dropdown_item_1line, COUNTRIES);  
  8.         AutoCompleteTextView textView = (AutoCompleteTextView)  
  9.                 findViewById(R.id.countries_list);  
  10.         textView.setAdapter(adapter);  
  11.     }  
  12.   
  13.     private static final String[] COUNTRIES = new String[] {  
  14.         "Belgium""France""Italy""Germany""Spain"  
  15.     };  
  16. }  


中有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

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <TextView xmlns:android="http://schemas.android.com/apk/res/android"   
  3.     android:id="@android :id/text1"   
  4.     style="?android:attr/dropDownItemStyle"   
  5.     android:textAppearance="?android:attr/textAppearanceLargeInverse"   
  6.     android:singleLine="true"   
  7.     android:layout_width="match_parent"   
  8.     android:layout_height="?android:attr/listPreferredItemHeight"   
  9.     android:ellipsize="marquee"  
  10.     />   

再進入E:\Java\android-sdk-windows\platforms\android-8\data\res\values找到attr.xml文件能夠找到 app

  1. <!--  Default style for drop down items. -->   
  2.   <attr name="dropDownItemStyle" format="reference" />   
  3. <!--  Text color, typeface, size, and style for "large" inverse text.   
  4. Defaults to primary inverse text color. -->   
  5.   <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"};
測試效果以下:
本站公眾號
   歡迎關注本站公眾號,獲取更多信息