不要做双层滑动嵌套,里面的那个list直接用动态添加view。

解决方案 »

  1.   

    explaneablelistview或者自定义listview
      

  2.   

    listView嵌套listView不怎么行的通,以前写过一个嵌套的,发现不行,就改addView()了
      

  3.   

    核心代码就addview,google一下吧
      

  4.   

    这是我当时做的demo,没用到convertView,如果数据不是很多的话也可以考虑这样public View getView(final int position, View convertView, ViewGroup parent) {
    convertView = View.inflate(getBaseContext(), R.layout.list_item_merge_contact, null);
    LinearLayout layout = (LinearLayout) convertView.findViewById(R.id.merge_contact_sub_lstView);
    final CheckBox checkBox = (CheckBox) convertView.findViewById(R.id.merge_checked);

    // 根据每一组需要合并的联系人数量实例化用于显示联系人数据的布局文件
    for (int i = 0; i < mergeList.get(position).size(); i++) {
    View view = View.inflate(getBaseContext(), R.layout.list_item_sub_merge_contact, null);
    TextView nameTxt = (TextView) view.findViewById(R.id.name_txt);
    System.out.println("当前初始化的位置数据"+mergeList.get(position));
    nameTxt.setText(mergeList.get(position).get(i));
    // System.out.println(mergeList.get(position).get(i));
    layout.addView(view);
    }

    checkBox.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    check.put(position, checkBox.isChecked());

    System.out.println("点击时位置-->"+position);
    System.out.println("点击时状态-->"+checkBox.isChecked());
    System.out.println("存储的状态为-->"+check.get(position));
    Toast.makeText(getBaseContext(), "当前为第"+position+"项,状态为"+checkBox.isChecked(), Toast.LENGTH_SHORT).show();
    }
    });

    // 还原checkbox的选择状态
    checkBox.setChecked(check.get(position,true));

    System.out.println("滑动后位置-->"+position);
    System.out.println("滑动后状态-->"+check.get(position));
    return convertView;
    }