пользовательский интерфейс настройки Android отображается странно

#android #listview #expandablelistview

#Android #listview #расширяемый listview

Вопрос:

Мой английский оставляет желать лучшего, если вы не понимаете, что я имею в виду, пожалуйста, скажите мне, спасибо.

Мои данные хранятся в SQLiteDatabase, я использую listview для отображения своих данных. и я сам реализую сворачивание / расширение с помощью ListActivity.onItemClick () . но когда childview.setVisibility (View.GONE), иногда пользовательский интерфейс Android показывает половину, я новый пользователь stack overflow, и я не могу публиковать изображения.

1) отображение по умолчанию: расширены все группы

Изображения ссылаются на другой веб-сайт,

2) свернуты все группы

3)при нескольких нажатиях на элемент listview основное действие отображало только половину высоты окна

что не так с моим решением. или это ошибка Android?

это код:

 @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);
            }
        }
    } 
  

это XML-макет listview.

 <?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:

Вероятно, вам следует использовать расширяемый ListView. Вместо onListItemClick вы будете использовать onGroupClickListener.

прочитайте документ здесь:http://developer.android.com/reference/android/widget/ExpandableListView.html