我正在尋找將expandableListView組展開放置在頂部的方法。 我試過onGroupExpand,或在performItemClick的ExpandableListView。如果它在系統啓動的時候開始它是自己的滾動,那麼列表會被過度滾動,而且組不在屏幕上。ExpandableListView onExpand始終將展開的組滾動到頂部
不好意思描述,但很難說沒有確切顯示我需要什麼。
我正在尋找將expandableListView組展開放置在頂部的方法。 我試過onGroupExpand,或在performItemClick的ExpandableListView。如果它在系統啓動的時候開始它是自己的滾動,那麼列表會被過度滾動,而且組不在屏幕上。ExpandableListView onExpand始終將展開的組滾動到頂部
不好意思描述,但很難說沒有確切顯示我需要什麼。
我有解決這個問題的辦法。這不是溫和的,但它工作得很好。 可擴展的listView消息是它應該通過子號移動。看來,該系統認爲,孩子是與父母(組)相同的高度,所以如果你把不同大小的孩子,它會導致自動滾動列表的問題。
我的解決方案是欺騙清單,認爲它有更多的孩子。 如果我的孩子是組的兩倍,我只是返回該組有兩個孩子的信息。現在,由於它是數據構建列表,我檢查了我的數據,是否有2個孩子的數據,或者只有1個,如果我沒有第二個孩子的數據,我知道我可以將0高度視圖作爲第二個兒童。
當我不得不讓List與小組,而不是1個大孩子時,它工作得很好。
由於沒有回答我的問題,我張貼這一個,它可能會幫助某人。
將transcriptmode更改爲禁用。
android:transcriptmode="disabled"
可擴展列表佈局。
您可以忽略此屬性。它爲我工作沒有transcriptmode。 – Amt87
它如何在沒有屬性的情況下工作? –
@DennySharma你可以忽略這個屬性,因爲禁用模式是默認模式。這是從文檔: 「禁用抄本模式,這是默認值。」 請參閱此處:http://developer.android.com/reference/android/widget/AbsListView.html#attr_android:transcriptMode –
在適配器將這個:
public void onGroupExpanded(final int groupPosition) {
super.onGroupExpanded(groupPosition);
listView.setSelectedGroup(groupPosition);
}
我嘗試了許多解決方案,但下面的代碼適用於me.Hope這個代碼將是一些one.Implements的OnGroupExpandListener有益與onGroupExpand 使用下面的代碼
public void onGroupExpand(final int groupPosition) {
super.onGroupExpand(groupPosition);
expandableListView.post(new Runnable() {
@Override
public void run() {
expandableListView.setSelection(groupPosition);
if(expandableListView.getChildAt(groupPosition)!=null)
expandableListView.requestChildRectangleOnScreen(expandableListView.getChildAt(groupPosition),
new Rect(0, 0, expandableListView.getChildAt(groupPosition).getRight(), expandableListView.getChildAt(groupPosition).getHeight()), false);
}
});
}
感謝downvoting,它不會改變,你們沒有人可以幫助,解決方案仍然按預期工作。 – Drake29a
試試我上面的新解決方案。 – thecoolmacdude