<?xml version="1.0" encoding="UTF-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:background="@drawable/ract_bg"    android:orientation="vertical" >    <ExpandableListView        android:id="@+id/listview"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:childDivider="#885D7081"        android:choiceMode="singleChoice"        android:divider="#88455869"        android:dividerHeight="1px"        android:groupIndicator="@null"        android:listSelector="#00000000"        android:scrollingCache="false" /></LinearLayout>


说明:需要定义android:listSelector="#00000000"关闭点击的效果,android:choiceMode="singleChoice"设为单选模式


charge_expandable_fragment_group_item.xml

<?xml version="1.0" encoding="UTF-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="60dp"    android:background="#88506475"    android:gravity="center_vertical"    android:minHeight="60dp"    android:orientation="horizontal" >    <ImageView        android:id="@+id/group_indicator"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginLeft="10dp"        android:layout_marginRight="10dp"        android:src="@drawable/expander_arrow_collapse" />    <TextView        android:id="@+id/group_textview"        style="@style/WhiteLargeNormalStyle"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:gravity="left|center_vertical"        android:text="父元素" /></LinearLayout>

charge_expandable_fragment_child_item.xml

<?xml version="1.0" encoding="UTF-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="80dp"    android:background="@drawable/selector_expandable_child_item"    android:gravity="center_vertical"    android:minHeight="80dp"    android:orientation="horizontal" >    <TextView        android:id="@+id/child_textview"        style="@style/WhiteLargeNormalStyle"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginLeft="20dp"        android:layout_weight="1"        android:gravity="left|center_vertical"        android:text="子元素" />    <ImageView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginRight="5dp"        android:src="@drawable/arrow_right" /></LinearLayout>


selector_expandable_child_item.xml

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item android:drawable="@drawable/child_item2" android:state_activated="true"/>    <item android:drawable="@drawable/child_item1"/></selector>

代码部分:

final private ExpandableListView.OnChildClickListener mOnClickListener = new ExpandableListView.OnChildClickListener() {@Overridepublic boolean onChildClick(ExpandableListView parent, View v,int groupPosition, int childPosition, long id) {// 设置选中背景setItemChecked(groupPosition, childPosition);// TODO 执行选中后的操作return true;}};private void setItemChecked(int groupPosition, int childPosition) {if (mListView == null) {return;}this.mGroupPosition = groupPosition;this.mChildPosition = childPosition;int numberOfGroupThatIsOpened = 0;for (int i = 0; i < groupPosition; i++) {if (mListView.isGroupExpanded(i)) {numberOfGroupThatIsOpened += mAdapter.getChildrenCount(i);}}int position = numberOfGroupThatIsOpened + groupPosition+ childPosition + 1;System.out.println("groupPosition=" + groupPosition+ ", childPosition=" + childPosition + ", position="+ position + ", isItemChecked="+ mListView.isItemChecked(position));if (!mListView.isItemChecked(position)) {mListView.setItemChecked(position, true);}}

@Overridepublic View getGroupView(int groupPosition, boolean isExpanded,View convertView, ViewGroup parent) {if (convertView == null) {convertView = mInflater.inflate(R.layout.charge_expandable_fragment_group_item,null);}ImageView indicator = (ImageView) convertView.findViewById(R.id.group_indicator);if (isExpanded) {// 设置展开后的group标头图片indicator.setImageResource(R.drawable.expander_arrow_expand);// 在折叠后再次展开,之前的选中会消失,此处需要设置一次if (groupPosition == mGroupPosition) {setItemChecked(mGroupPosition, mChildPosition);}} else {// 折叠后的group标头图片indicator.setImageResource(R.drawable.expander_arrow_collapse);}TextView text = (TextView) convertView.findViewById(R.id.group_textview);text.setText(groups[groupPosition]);return convertView;}


更多相关文章

  1. android 开发设置全屏
  2. Android(安卓)实现自定义Toast工具类
  3. android 自定义对话框 背景透明
  4. Android设置全屏两种方式
  5. Android的消息通知--Notification
  6. 下拉列表
  7. Android字体设置
  8. android google map 实现拉框功能
  9. android上传图片至服务器

随机推荐

  1. Android studio如何使用SVN进行版本控制?
  2. android NFC学习笔记(一)
  3. android sqlite 存储图片
  4. Android - 事件分发机制
  5. Android App性能优化——内存泄露以及内
  6. android 笔记 --- 让Android的输入框与文
  7. Android实现Parcelable对象序列化的实例
  8. Android中canvas和paint的关系及使用
  9. Android NDK——实战演练之TextureView的
  10. android 上 webkit js 本地扩展之全局本