————–ListView基礎
ListView是一個用于顯示滾動的列表項的視圖組。listview通過一個適配器adapter將數(shù)據(jù)以列表的形式展示出來。listview可以說是Android應用層開發(fā)非常重要的組件之一,幾乎每個App都有它的身影,通過適配器可以使listview呈現(xiàn)出各種不同的樣式和風格,作為Android開發(fā)人員必須熟練掌握。
下面介紹一下listview的一些常用屬性:
1.divider屬性:在列表條目之間顯示的可繪制對象或顏色.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent" ><ListView
android:id="@+id/listview"android:layout_width="wrap_content"android:layout_height="wrap_content"android:dividerHeight="4dp"android:divider="#789234" /></RelativeLayout>
2.fastScrollEnabled屬性:允許使用快速滾動手柄,可以通過拖動該手柄在列表中快速滾動.(其實就是右側(cè)滑塊).
<ListView
android:id="@+id/listview"android:layout_width="wrap_content"android:layout_height="wrap_content"android:fastScrollEnabled="true"android:divider="#789234"android:dividerHeight="4dp"/>
- 效果圖:右側(cè)顯示快速滑塊,fastScrollEnabled=”false”不顯示滑塊。
3.listSelector屬性:用于在列表中指示當前選中條目的可繪制對象( 每個item背景/選擇后的背景).
<ListView
android:id="@+id/listview"android:layout_width="wrap_content"android:layout_height="wrap_content"android:listSelector="@drawable/item_selector"/>
- res/drawable/item_selector.xml代碼
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/ajo" android:state_focused="true" android:state_pressed="true"/>
</selector>
注:ajo.9.png圖片是這個:
android:listSelector=“@null”,選中或點擊列表項時無背景顏色變化。
4.scrollbars屬性: 隱藏和顯示右側(cè)滾動條.
<ListView
android:id="@+id/listview"android:layout_width="wrap_content"android:layout_height="wrap_content"android:scrollbars="none"/>
5.choiceMode屬性: 定義了列表的選擇行為,默認的情況下,列表沒有選擇行為。
- none:默認不指定選擇的列表
- singleChoice:單選
multipleChoice:多選
xml代碼
<ListView
android:id="@+id/listview"android:layout_width="wrap_content"android:layout_height="wrap_content"android:choiceMode="singleChoice"/>
public class MainActivity extends Activity
{private ListView listView;
@Overrideprotected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listView = (ListView)findViewById(R.id.listview);List<String> data =
new ArrayList<>();
for (
int i =
0; i <
80; i++){data.add(
"list------Item:" + i);}ArrayAdapter<String> adapter =
new ArrayAdapter<>(MainActivity.
this, android.R.layout.simple_list_item_checked, data);listView.setAdapter(adapter);}
}
當設置android:choiceMode=”multipleChoice”時,效果圖如下:
6.stackFromBottom屬性:列表從底部顯示。
<ListView
android:id="@+id/listview"android:layout_width="wrap_content"android:layout_height="wrap_content"android:stackFromBottom="true"/>
7.android:cacheColorHint屬性。
- 一般給listview設置背景圖片的時候(background=”@drawable/back”),如果滑動listview出現(xiàn)閃爍或者變黑的情況,設置android:cacheColorHint=”#00000000”( 透明)
下面說一下簡單適配器的使用:
一.ArrayAdapter
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent" ><ListView
android:id="@+id/listview"android:layout_width="wrap_content"android:layout_height="wrap_content"/></RelativeLayout>
public class MainActivity extends Activity
{private ListView listView;
@Overrideprotected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listView = (ListView)findViewById(R.id.listview);List<String> data =
new ArrayList<>();
for (
int i =
0; i <
80; i++){data.add(
"這是ArrayAdapter的例子:"+i);}ArrayAdapter<String> adapter =
new ArrayAdapter<>(MainActivity.
this, android.R.layout.simple_list_item_1, data);listView.setAdapter(adapter);}
}
一.SimpleAdapter
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent" ><ListView
android:id="@+id/listview"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#FFFFFF"android:divider="#423376"android:dividerHeight="2dp"android:scrollbars="none"/></RelativeLayout>
public class MainActivity extends Activity
{private ListView listView;
private List<Map<String, Object>> data =
new ArrayList<Map<String, Object>>();
private final String KEY[] =
new String[]{
"image",
"name",
"qianming"};
private final int ID[] =
new int[]{R.id.item_image,R.id.item_name,R.id.item_qianming};
private final int IMAGEID[] =
new int[]{R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d,R.drawable.e,R.drawable.f,R.drawable.g,R.drawable.h,R.drawable.i,R.drawable.m};
private final String NAME[] =
new String[]{
"殺阡陌",
"花千骨",
"張三豐",
"劉邦",
"孫權",
"趙云",
"宋江",
"雷軍",
"馬化騰",
"馬云"};
private final String QIANMING[] =
new String[]{
"愿得一人心,白首不相離",
"身無彩鳳雙飛翼,心有靈犀一點通",
"兩情若是久長時,又豈在朝朝暮暮",
"東邊日出西邊雨,道是無晴卻有晴",
"衣帶漸寬終不悔,為伊消得人憔悴",
"天涯地角有窮時,只有相思無盡處",
"那人卻在,燈火闌珊處",
"野曠天低樹,江清月近人",
"海上生明月,天涯共此時",
"明月松間照,清泉石上流"};
@Overrideprotected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listView = (ListView)findViewById(R.id.listview);
for (
int i =
0; i <
10; i++){Map<String, Object> map =
new HashMap<String, Object>();map.put(KEY[
0], IMAGEID[i]);map.put(KEY[
1], NAME[i]);map.put(KEY[
2], QIANMING[i]);data.add(map);}SimpleAdapter adapter =
new SimpleAdapter(MainActivity.
this, data, R.layout.list_item, KEY, ID);listView.setAdapter(adapter);}
}
這里的布局是自定義的布局,可以根據(jù)自己的需求進行任意布局,當然,這只是界面的展示,listview 的更多特性還得自定義adapter來展示,關于自定義Adapter將在下篇博文中講解
至此,listview基礎使用方式就先說到這了,大家有什么疑問歡迎留言探討!
總結
以上是生活随笔為你收集整理的【Android UI】ListView系列一(基础篇)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。