首页 > 代码库 > ListView分栏的实现

ListView分栏的实现

ListView分栏(Columnar ListView)的好处在于,区分内容,便于用户操作选择。核心思想是:在指定位置插入标题内容。
实现方法如下:
1,  实现AdapterareAllItemsEnabled()方法和isEnabled()方法,确定内容
显然,ListViewItem中,标题不可被操作,内容部分可响应点击(click)和长按(longClick)时间。设置如下:
    @Override    public boolean areAllItemsEnabled() {        // TODO Auto-generated method stub        return false;    }    @Override    public boolean isEnabled(int position) {        // TODO Auto-generated method stub        if (position == 0 || position == 4) {//            return false;        } else {            return true;        }    }

 

2,ListView要显示的内容中,添加两个标题内容。如增加数组长度或StringArray长度等。
 
3,  getView()方法中,做判断,代码如下:
if (position == 0 || position == 4) { 
        TextView textView = new TextView(MainActivity.this); 
        textView.setText(mMainListContents[position]); 
        textView.setBackgroundColor(android.R.color.black); 
        return textView; 
      }
 
4,效果如下:

 \

 

Ps: (当isEnable()返回false时,divider不可见)

 

原文:http://mikewang.blog.51cto.com/3826268/737715
参考:http://stackoverflow.com/questions/5375138/disappearing-divider-in-listview-when-arrayadapter-isenabled-returns-false/5501803#5501803

ListView分栏的实现