我已经实现了一个ExpandableListView,它使用SimpleCursorTreeAdapter来填充子节点。但我得到一些不寻常的行为。单击父级会导致孩子显示但是我没有其他工作。这意味着我无法扩展其他父母或垮掉孩子。调试时,我不小心使用了鼠标滚轮,ExpandableListView开始按预期完全正常工作 这是孩子们的代码:
private void showEvents(final Cursor cursor) {
ExpandableListView lv1 = this.getExpandableListView();
lv1.setScrollbarFadingEnabled(false);
SimpleCursorTreeAdapter treeAdapter = new SimpleCursorTreeAdapter (this, cursor, R.layout.simplerow, FROM, TO,
R.layout.childrow, FROMCHILD, TOCHILD) {
@Override
public void setViewText(TextView v, String text) {
super.setViewText(v, convText(v, text, cursor));
}
@Override
protected Cursor getChildrenCursor(Cursor parentCursor) {
int groupPos = parentCursor.getPosition();
Log.d("TEST", "getChildrenCursor() for groupPos " + groupPos);
String childSql = "select f._id, f.NAME as FUNDNAME, "
+ "f.value as AMOUNT_OWNED "
+ "from funds f "
+ "where f.asset_class = " + parentCursor.getInt(0) + ";";
Log.d("getChildrenCursor", childSql);
SQLiteDatabase db = pfdata.getReadableDatabase();
Cursor assetsCursor = db.rawQuery(childSql, null);
Log.d("getChildrenCursor", Integer.toString(assetsCursor.getCount()));
return assetsCursor;
}
};
lv1.setAdapter(treeAdapter);
}
是否有人可以解释为什么会发生这种情况或提供一些建议?谢谢你的时间。
所以我现在知道导致行为的代码行。该活动包含多个列表视图以及上面的可扩展列表视图。我开始评论代码并发现通过在活动的其他地方删除这一行代码,一切正常。
RB1lv.setScrollIndicators
并按如下方式定义了几行:
ListView RB1lv = (ListView) findViewById(R.id.list3);
好消息是我不再有这种奇怪的行为了。但我不知道为什么更改单独列表视图上的滚动指示器会导致这种情况。