Определение ExpandableListView в xml

Я должен определить структуру ExpandableListView в XML-файле вручную. Есть ли какое-либо руководство или пример выполнения этого?

Спасибо

6
задан Alexander Oleynikov 24 June 2010 в 13:43
поделиться

1 ответ

Я столкнулся с этим два дня назад. Вот мое решение:

Сначала расширьте ExpandableListActivity и переопределите метод onCreate () следующим образом:

public class ExpandableExample extends ExpandableListActivity {
    @Override
    public void onCreate() {
        super.onCreate(savedInstanceState);
        setListAdapter(new BaseExpandableListAdapterExample());
    }
}

Определение BaseExpanableListAdapterExample : (внутренний класс ExpandableExample ]):

protected class BaseExpandableListAdapterExample extends BaseExpandableListAdapter {
}

Затем вам нужно реализовать getChildView и getGroupView . Я сделал следующее:

public View getGroupView(int groupPosition, boolean isExpanded,
                         View convertView, ViewGroup parent) {
    View groupRow = getLayoutInflater().inflate(R.layout.group_row, null);
    TextView textView = (TextView) groupRow.findViewById(R.id.text_group);
    textView.setText(getGroup(groupPosition).toString());
    return groupRow;
}

public View getChildView(int groupPosition, int childPosition,
                         boolean isLastChild, View convertView, ViewGroup parent) {
    View childRow = getLayoutInflater().inflate(R.layout.child_row, null);
    TextView textView = (TextView) childRow.findViewById(R.id.text_child);
    textView.setText(getChild(groupPosition, childPosition).toString());
    return childRow;
}

Затем вам нужно определить как group_row.xml , так и child_row.xml в каталоге / res / layout / . Например, мой group_row.xml выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <TextView
        android:id="@+id/text_element"
        android:layout_width="fill_parent"
        android:layout_height="48dip"
        android:textSize="20sp"
        android:textColor="#fff"
        android:layout_marginLeft="48dip"
        android:gravity="center_vertical" />
</RelativeLayout>

Надеюсь, это поможет. Прокомментируйте, если у вас есть вопросы.

7
ответ дан 17 December 2019 в 00:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: