今天在Android Developers查看AutoCompleteTextView 时发现示例代码
- 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.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:
- <?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文件可以找到
- <!-- 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属性即当文本不能完全显示时,文本的显示方式。有五种样式可选。
Constant | Value | Description |
---|---|---|
none | 0 | 无样式 |
start | 1 | 前面文本不显示 |
middle | 2 | 中间的文本不显示 |
end | 3 | 末尾的文本不显示 |
marquee | 4 | 跑马灯风格 |
![](http://static.oschina.net/uploads/img/201303/23122451_kBui.gif)