android setVisibility ui显示奇怪

时间:2011-05-02 10:24:57

标签: android listview expandablelistview

我的英语很差,如果你不明白我的意思,请告诉我,谢谢。

我的数据存储在SQLiteDatabase中,我使用listview显示我的数据。我通过ListActivity.onItemClick()实现折叠/展开。但是当childview.setVisibility(View.GONE),有时android ui显示一半,我是堆栈溢出的新用户,而且我无法发布图像。

1)默认显示:扩展所有组

图片链接到另一个网站

2)collapsed all groups

3)when several times clicked on listview's item,the main activity showed only half of window height

我的解决方案出了什么问题。还是它的android bug?

这是代码:

@Override
    public void onListItemClick(ListView list,View v,int position,long id) {
        if(v instanceof RelativeLayout) {
            ViewGroup group = (ViewGroup)v;
            ImageView groupIndicator = (ImageView) group.getChildAt(0);
            TextView itemContentView = (TextView) group.getChildAt(2);
            if(itemContentView.getVisibility() == View.GONE) {
                groupIndicator.setBackgroundResource(R.drawable.expand);
                itemContentView.setVisibility(View.VISIBLE);
            } else {
                groupIndicator.setBackgroundResource(R.drawable.collapse);
                itemContentView.setVisibility(View.GONE);
            }
        }
    } 

这是listview的布局xml。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:background="@drawable/corner"
  android:padding="3dip"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
  <ImageView android:id="@+id/groupIndicator" android:background="@drawable/expand" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
  <TextView android:id="@+id/rowTitle" android:paddingLeft="5dip" android:textColor="#FFFFFF" android:textStyle="bold" android:layout_toRightOf="@id/groupIndicator" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
  <TextView android:id="@+id/rowContent" android:layout_below="@id/groupIndicator" android:padding="5dip" android:layout_width="fill_parent" android:layout_height="wrap_content"/>
</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

您应该使用ExpandableListView。而不是onListItemClick,您将使用onGroupClickListener。

在此处阅读文档:http://developer.android.com/reference/android/widget/ExpandableListView.html