Я использую ListView
как дочерний ряд в ExpandableListActivity
и определил для него пользовательский номер CursorTreeAdapter
. Значения и представления заполняются моим кодом так же, как ожидалось, но каждая расширяемая строка списка (с переменным количеством элементов в ней) показывается только частично (отображаются только первые 2 элемента).Listview, встроенный в ExpandableListActivity, отображается только частично на экране
При отладке с помощью кода, я подтвердил, что все дочерние строки (
ListView
) в настоящее время заполняется должным образом (то есть с 10-15 строк в ней)Просто, чтобы подтвердить дальше, я изменил
android:stackFromBottom = "true"
дляListView
, на этот раз для каждой расширяемой строки позиции отображались только последние 2 элемента.
`
public class WorkExpandableListAdapter extends CursorTreeAdapter {
public WorkExpandableListAdapter(Cursor cursor, Context context) { super(cursor, context, true); }
protected Cursor getChildrenCursor(Cursor groupCursor) { ... return childCursor; }
@Override
protected void bindChildView(View view, Context context, Cursor cursor,
boolean isLastChild) {
if (!noColumnsToDisplay) {
int numColumns = workProjection.length + 1; // to skip the _id
ArrayList<JXTField> jxtFields = new ArrayList<JXTField>();
for (int i = 1; i < numColumns; i++) {
jxtFields.add(new JXTField(workProjection[i - 1],
cursor.getString(cursor
.getColumnIndex(workProjection[i - 1]))));
}
//OrderAdapter is simply a customized Array adapter which converts name value pairs into //customized 2 line items
ArrayAdapter<JXTField> adapter = new OrderAdapter(WorkList.this,
R.layout.work_view_row, jxtFields);
((ListView) view.findViewById(R.id.expandable_child_list))
.setAdapter(adapter);
}
}
@Override
public View newChildView(Context context, Cursor cursor, boolean isLastChild, ViewGroup parent) {
return getLayoutInflater().inflate(R.layout.expandable_child_list,null); }
@Override
protected void bindGroupView(View view, Context context, Cursor cursor, boolean isExpanded) { ... }
@Override
protected View newGroupView(Context context, Cursor cursor, boolean isExpanded, ViewGroup parent) {
return ((TextView) getLayoutInflater().inflate(android.R.layout.simple_expandable_list_item_1, null));
}
}
`
expandable_child_list.xml
`
<ListView
android:id="@+id/expandable_child_listt"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="20dp"
android:layout_weight="2.0"
/>
`
work_view_row.xml`
<LinearLayout
android:orientation="vertical"
android:layout_width="0dip"
android:layout_weight="1"
android:layout_height="fill_parent">
<TextView
android:id="@+id/work_view_row_top_text"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:gravity="center_vertical"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:id="@+id/work_view_row_bottom_text"
android:ellipsize="marquee"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
</LinearLayout>
`
Это выглядело как легкий, чтобы решить, когда я впервые столкнулся с ним, но после того, как тратить слишком много времени на это я прибегаю к гуру. Может быть, мне не хватает чего-то очень очевидного, но, пожалуйста, укажите. :(
Заранее спасибо.