如何去掉ExpandableListView左边箭头_箭头显示到右边的方法
2015-01-06 11:31:41  By: dwtedx

一、更换ExpandableListView右边的箭头(小图标)

第一个方法: 网上许多说到在ExpandableListView的布局xml中的groupIndicator更换成@drawable/***、我试过、可行

代码如下:

首先在drawable的文件夹下建立自定义选择布局属性的xml文件:ex_smallimage.xml

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_expanded="false"
          android:drawingCacheQuality="auto"
        android:drawable="@drawable/la"/>     这里la是下拉图标
    <item android:state_expanded="true"
        android:drawingCacheQuality="auto"
     android:drawable="@drawable/shou"/> 这里shou是收回图标
</selector>

然后在ExpandableListView的groupIndicator设为:android:groupIndicator="@drawable/ex_smallimage"


这样做了可行、但是有个问题、就是图标总是随group的大小而拉伸、不会缩放:那么我调了xml的group代码之后、可以勉强达到自己要求的效果、但是这样的代码没有弹性、换张图片还得改布局、、、如果有知道如何设置图标的大小告诉我咯~呵呵


方法二:经过上面的尝试、我禁掉了groupIndicator属性、然后再在group的xml中加入ImageView、这样可以控制我的图片的缩放和位置的更改

代码:

android:groupIndicator="@null"

这里非常重要、禁用系统自带的图标、再在group的xml中设置ImageView、这个简单、然后在适配器的getGroupView中加入图片变换的效果


public View getGroupView(int groupPosition, boolean isExpanded,
   View convertView, ViewGroup parent) {
     // TODO Auto-generated method stub
	…… 
     ImageView mgroupimage=(ImageView)convertView.findViewById(R.id.mGroupimage);
     mgroupimage.setImageBitmap(mla);
     if(!isExpanded){
         mgroupimage.setImageBitmap(mshou);
     }
	……
}


二、替换ExpandableListView小箭头

首先将控件默认的左边箭头去掉

ExpandableListView elistview;
elistview.setGroupIndicator(null);

在自定义的继承自BaseExpandableListAdapter的adapter中有一个方法

@Override
public View getGroupView(int groupPosition, boolean isExpanded,
	View convertView, ViewGroup parent) {
	Log.i("zhaoxiong","parent view");
	LinearLayout parentLayout=(LinearLayout) View
		.inflate(context, R.layout.wowocoupons_parent_item, null);
	TextView parentTextView=(TextView) parentLayout
		.findViewById(R.id.parentitem);
	parentTextView.setText(parentlist.get(groupPosition));
	ImageView parentImageViw=(ImageView) parentLayout
		.findViewById(R.id.arrow);
	//判断isExpanded就可以控制是按下还是关闭、同时更换图片 
	if(isExpanded){
		parentImageViw.setBackgroundResource(R.drawable.arrow_down);
	}else{
		parentImageViw.setBackgroundResource(R.drawable.arrow_up);
	} 
	
	return parentLayout;
}

以上就是我使用ExpandableListView、关于箭头的总结、当然以上总结也参考了一些网上的例子

若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+