ExpandableListView设置选中child的背景
来源:互联网 发布:java权限表设计 编辑:程序博客网 时间:2024/06/08 02:32
转自:http://blog.csdn.net/hknock/article/details/12914915
- <?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() {
- @Override
- public 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);
- }
- }
- @Override
- public 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;
- }
0 0
- ExpandableListView设置选中child的背景
- ExpandableListView设置选中child的背景
- android 为ExpandableListView中child设置监听器
- 设置listview的item选中背景
- 设置 ListBox 选中项的背景颜色
- 设置ListBox选中项的背景颜色
- 设置Listview 的选中背景效果 背景变蓝字变白
- UITableViewCell 的简单背景以及 选中背景设置
- ios 设置UITableView 选中行cell的背景颜色(自定义选中的背景颜色)
- UITableViewCell设置选中背景颜色
- Android 中的ListView选中项的背景颜色怎么设置?
- Android 中的ListView选中项的背景颜色怎么设置?
- Android 中的ListView选中项的背景颜色怎么设置?
- android 中的ListView选中项的背景颜色怎么设置?
- Android 中的ListView选中项的背景颜色怎么设置?
- cellForRowAtIndexPath UITableViewCell 选中后的背景颜色设置
- 设置透明背景的Listview和选中状态
- Android 中设置ListView选中项的背景颜色
- Set up git server on ubuntu using ssh protocol(已经测试可以)
- Why do people use gradient boosted decision trees to do feature transform?
- 2015年3月30号
- new和newInstance()的区别
- 阿里巴巴2014校园招聘研发笔试JAVA附加题一
- ExpandableListView设置选中child的背景
- EPS
- CSS3 参考指南:文字阴影text-shadow
- spring 事物配置
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记2 Xcode、Auto Layout及MVC
- 由浅入深理解数据库索引的实现
- 【storm,1】storm 简介:
- 《Android开发环境》 第二章 Android Studio安装与环境搭建
- Dynamic Linking