要求:在实现爱奇艺或者腾讯新闻等界面的设计时,会发现它的同一个listView中可以显示不同的布局方式,让其呈现出不一样的item,所以我们也来实现一下这种功能。
步骤:1、重写 getViewTypeCount() – 该方法返回多少个不同的布局
2、重写 getItemViewType(int) – 根据position返回相应的Item
3、根据view item的类型,在getView中创建正确的convertView
4、根据我们上次在listView系列之分类显示中学习,知道了要实现分类显示的效果,就得从position下手才行,这里也不例外。
我主要是突出怎么实现功能,所以这里我仍采用简单的将adpater写在内部类的方法来实现:
首先我们在主布局文件activity_main中就是简单的用了一个listView,接着创建三个要在listView上显示出来的三种不同布局:listView_item1,listView_item2,listView_item3,其中listView_item1就只包括一个TextView和CheckBox,listView_item2也只包括TextView,listView_item3也只包括TextView和ImagView。
public class MainActivity extends Activity {
private ListView mListView;
private List<String> mList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mListView = (ListView) findViewById(R.id.listView);
mList = new ArrayList<String>();
f