ListView概述

ListView是用于显示多个条目的纵向滚动列表视图。条目数据来自于与该类关联的ListAdapter。 IWOP平台下具有三种ListView:

 
AmazingListView:
 
基本ListView。每一个条目占据该控件的三分之一高度,其余逻辑与Android原生ListView一样。
 
AmazingFocusListView:
 
可定位的ListView。在AmazingListView的基础上增加了定位功能,每次滑动结束后都一定停在某一条目的顶部。
 
AmazingSwipeListView:
 
可删除条目的ListView。在AmazingFocusListView的基础上增加了左滑删除该条目的功能。

你可以根据你的具体需求选择使用哪一个ListView。

ListView介绍

AmazingListView

IWOP最基本的ListView,使用方式与Android原生ListView一样。

AmazingFocusListView

可定位的ListView。

 
setFocusMode(int):
 
你可以调用这个方法设置定位模式。可选择的模式有:FOCUS_MODE_NORMAL,正常模式,滑动停止自动定位;FOCUS_MODE_CLICK,点击模式,除了滑动定位外,点击每个条目,也会把该条目定位到控件中间。
 
setFocusType(int)
 
你可以调用这个方法设置定位类型。可选参数:FOCUS_TYPE_NONE,无类型;FOCUS_TYPE_CKECKED,checked类型,当该条目定位到控件中间,会把id为android.R.id.icon的View设置为checked属性;FOCUS_TYPE_SELECTED,selected类型,当该条目定位到控件中间,会把id为android.R.id.icon的View设置为selected属性;FOCUS_TYPE_BOTH,同时具备以上两种类型。
 
setFocusPosition(int)
 
你可以调用这个方法主动把该条目定位到控件中间。
 
OnFocusChangedListener:
 
定位条目改变监听器,可以监听到当前定位的条目改变事件。

AmazingSwipeListView

在AmazingFocusListView基础上扩展向左滑动删除功能的ListView。

 
setOnItemDeleteListener(OnItemDeleteListener listener);
 
你可以设置Item滑动删除的监听器,用来从适配器中删除Item数据和清除具体的后台数据(比如清除数据库存储的记录信息等)。

ListView的典型用法

AmazingListView

IWOP最基本的ListView,使用方式与Android原生ListView一样。

AmazingFocusListView

AmazingFocuseListView典型用法如下:


public class ListViewActivity implements OnFocusChangedListener {
    private AmazingFocusListView mListView;

    @Override
    public final void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mListView = (AmazingFocusListView) findViewById(R.id.list);
        ...
        mListView.setOnFocusChangedListener(this);
    }

    @Override
    public void onFocusChanged(AmazingFocusListView view, int focus, int oldFocus) {
        //TODO On Focuse Changed
    }
}

AmazingSwipeListView

AmazingSwipeListView典型用法如下:


public class ListViewActivity implements OnItemDeleteListener {
    private AmazingSwipeListView mListView;

    @Override
    public final void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mListView = (AmazingSwipeListView) findViewById(R.id.list);
        ...
        mListView.setOnItemDeleteListener(this);
    }

    @Override
    public void onDelete(View view, int position) {
        //TODO On Delete Item
    }
}