android ExpandableListView 设置所有子条目单选
2017-02-10 17:29
519 查看
1.首先设置子条目可选:
childViewd的布局文件中
2.设置条目监听事件 由ViewHolder来实现
3.viewHolder中来实现对条目点击的响应
完成
另外 在低版本(4.1)的手机上要设置点击效果,不然系统默认的点击效果太丑
在布局中加入:
childViewd的布局文件中
<LinearLayout android:id="@+id/ll_item" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" android:clickable="true" //默认是不可点击 改为可以点击 >
2.设置条目监听事件 由ViewHolder来实现
@Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { ChildViewHolder viewHolder; if (convertView == null) { convertView = View.inflate(mActivity, R.layout.item_learning_tasks_sub_tasks_child, null); viewHolder = new ChildViewHolder(convertView); viewHolder.ll_item_sub_task.setOnClickListener(viewHolder); //可以被点击 由viewholder来监听 convertView.setTag(viewHolder); } else { viewHolder = (ChildViewHolder) convertView.getTag(); } viewHolder.groupPosition = groupPosition; //在viewholder中纪录当前的groupPosition viewHolder.childPosition = childPosition; //在viewholder中纪录当前的childPosition if(selectedItem[0]==groupPosition&&selectedItem[1]==childPosition){ //判断当前条目是否被选中 viewHolder.ll_item_sub_task.setSelected(true); }else{ viewHolder.ll_item_sub_task.setSelected(false); } return convertView; }
3.viewHolder中来实现对条目点击的响应
class ChildViewHolder implements View.OnClickListener { @Bind(R.id.ll_item_sub_task) LinearLayout ll_item_sub_task; @Bind(R.id.iv_item_sub_task) ImageView iv_item_sub_task; @Bind(R.id.tv_item_sub_task) TextView tv_item_sub_task; public int groupPosition; public int childPosition; public ChildViewHolder(View view) { ButterKnife.bind(this, view); } @Override public void onClick(View v) { selectedItem = new int[]{groupPosition,childPosition}; //将被选中的条目记录到adapter中 notifyDataSetChanged(); //刷新显示 } }
public class SubAdapter extends BaseExpandableListAdapter { private int[] selectedItem; //用于记录当前被选中的条目 记得在构造方法中初始化为{-1,-1} }
完成
另外 在低版本(4.1)的手机上要设置点击效果,不然系统默认的点击效果太丑
在布局中加入:
android:listSelector="@color/light_grey"
即可
如果在低版本手机上在PopupWindow中嵌套使用ExpandableListView的话 记得给PopupWindows设置焦点 可能无法点击条目展开
相关文章推荐
- Android中给listview/gridview设置动画(逐条加载条目动画)
- Android知识点记录: 使用代码设置 android 上listView的条目的点击背景颜色
- android 为ExpandableListView中child设置监听器
- Android ExpandableListView单选以及多选实现
- Android实现LIstView条目单选和多选RadioButton
- android ListView条目的子布局设置android:layout_height="match_parent"无效
- Android中给listview/gridview设置动画(逐条加载条目动画)
- Android中给listview/gridview设置动画(逐条加载条目动画)
- Android listview ExpandableListView实现多选,单选,全选,edittext实现批量输入的实例代码
- Android中listview和imageview实现条目单选效果
- Android ListView与ExpandableListView设置分割线divider
- android listview ExpandableListView实现多选,单选,全选,edittext实现批量输入
- Android 给listview/gridview设置加载动画(逐条加载条目动画)
- Android 禁止ExpandableListView组的点击展开或隐藏事件,让所有列表都展开
- Android中给listview/gridview设置动画(逐条加载条目动画)
- Android ExpandableListView单选以及多选实现代码
- ExpandableListView设置每次只打开一个Group
- Android ExpandableListView的使用
- Android ExpandableListView的使用
- android学习:ExpandableListView的运用