2017-02-13 1 views
1

확장 가능한 목록보기가 있고 부모 그룹을 클릭하고 자식을 클릭하면 오른쪽 방향 화살표에서 아래 방향 화살표로 아이콘을 변경하고 싶습니다. 가 표시됩니다. 현재 상위 그룹을 클릭하여 펼치고 어린이에게 보여 주면 아이콘이 오른쪽 화살표에서 아래쪽 화살표로 변경되지 않고 그냥 화살표 방향의 화살표 아이콘으로 유지됩니다. 이것은 제가 현재 사용할 수있는 어댑터에 있습니다.부모 그룹이 자식을 표시하도록 확장되었을 때 아이콘을 어떻게 바꿀 수 있습니까?

@Override 
    public View getGroupView(int groupPosition, boolean isExpanded, 
          View convertView, ViewGroup parent) { 
     String headerTitle = getGroup(groupPosition).toString(); 
     if (convertView == null) { 
     LayoutInflater infalInflater = (LayoutInflater) this._context 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = infalInflater.inflate(R.layout.list_group, null); 



     ImageView arrowImageView = (ImageView) convertView.findViewById (R.id.group_header_arrow); 
     if (isExpanded) { 
      arrowImageView.setImageResource(R.drawable.arrow_down); 
      (ApplicationContext.Activity.Resources.GetColor (Resource.Color.standard_blue)); 
     } 


     } 
     TextView lblListHeader = (TextView) convertView 
      .findViewById(R.id.lblListHeader); 

     lblListHeader.setText(headerTitle); 
     TextView Header = (TextView) convertView 
      .findViewById(R.id.lblListHeader); 

     lblListHeader.setText(headerTitle); 
     return convertView; 
    } 

그룹 머리글

<?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="wrap_content" 
       android:orientation="vertical" 
       android:padding="8dp" 
       android:background="#f4f4f4"> 


    <ImageView 
     android:id="@+id/group_header_arrow" 
     android:src="@drawable/arrow_right" 
     android:layout_centerVertical="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingRight="10dp" /> 

    <TextView 
     android:id="@+id/lblListHeader" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:paddingLeft="?android:attr/expandableListPreferredItemPaddingLeft" 
     android:textSize="17dp" 
     android:textColor="#388C2A" /> 

</LinearLayout> 

답변

0

사용이를위한 XML, 드로어 블에 저장

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_empty="true" android:drawable="@drawable/right_indicator"/> 
<item android:state_expanded="true" android:drawable="@drawable/left_indicator" /> 
<item android:drawable="@drawable/right_indicator" /> 
,

0

어댑터 클래스에서이 코드를 추가

final ExpandableListView mExpandableListView= (ExpandableListView) parent ; 

    mExpandableListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { 

     @Override 
     public void onGroupExpand(int groupPosition) { 
      arrowImageView.setImageResource(R.drawable.arrow_down); 
     } 
    }); 

    mExpandableListView.setOnGroupCollapseListener(new ExpandableListView.OnGroupCollapseListener() { 

     @Override 
     public void onGroupCollapse(int groupPosition) { 
      arrowImageView.setImageResource(R.drawable.arrow_left); 
     } 
    }); 

    if(mExpandableListView.isGroupExpanded(groupPosition)) 
    { 
     arrowImageView.setImageResource(R.drawable.arrow_down); 
    } 
    else 
    { 
     arrowImageView.setImageResource(R.drawable.arrow_left); 
    } 
관련 문제