ExpandableListview自定义子行

时间:2013-07-04 12:29:34

标签: android expandablelistview

在我的应用程序中,我正在使用“Expandable listview”。假设如果用户选择了一个子行,我必须使该imageview可见,否则不要。以下代码使我的imageview在用户选择子项时可见。但是如果用户选择另一个子项,则先前选择的子行图像也可见i我不想那样。如果用户选择一个孩子,那儿童的图像视图应该是可见的。如果我选​​择另一个组,之前选择的“子行”是不可见的......

儿童行:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView 
        android:id="@+id/tvPlayerName" 
        android:paddingLeft="10dip"
        android:textSize="18sp"
        android:layout_width="wrap_content" 
        android:layout_height="30dip" 
        android:gravity="center_vertical"/>

    <ImageView 
        android:id="@+id/selected"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_marginLeft="10dp"
        android:layout_centerVertical="true"
        android:background="@drawable/tick_icon"/>


</RelativeLayout>


ImageView imageView=(ImageView)v.findViewById(R.id.selected);
imageView.setVisibility(View.VISIBLE);

请帮我解决这个问题..

2 个答案:

答案 0 :(得分:1)

在child_row.xml中,ImageView的可见性消失了。然后在你的onChildClick()中使图像可见(imageview)

   public boolean onChildClick(
        ExpandableListView parent, 
        View v, 
        int groupPosition,
        int childPosition,
        long id) {

    //Write the code for image visible 
  }

答案 1 :(得分:0)

试试这个

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView 
    android:id="@+id/tvPlayerName" 
    android:paddingLeft="10dip"
    android:textSize="18sp"
    android:layout_width="wrap_content" 
    android:layout_height="30dip" 
    android:gravity="center_vertical"/>

<ImageView 
    android:id="@+id/selected"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/ic_action_share"
    android:visibility="invisible"/>


</LinearLayout>

在您的java类中

textView.setFocusChangeListener(new OnFocusChangeListener(){
    public void onFocusChange(View v, boolean hasFocus) {
    if(hasFocus){
        imageView.setVisibility(ImageView.VISIBLE);
    }
}
});

希望这会有所帮助。