ListView分栏的实现
ListView分栏(Columnar ListView)的好处在于,区分内容,便于用户操作选择。核心思想是:在指定位置插入标题内容。
实现方法如下:
1, 实现Adapter的areAllItemsEnabled()方法和isEnabled()方法,确定内容
显然,ListView的Item中,标题不可被操作,内容部分可响应点击(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;
}
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