2016-03-15 53 views
0

在標記此問題重複之前,我知道有幾個線程正在進行此特定主題,但它們已過時幾年(2012-13),並且從那時起Android API已發生變化。此外,我已經嘗試過這些解決方案,但要麼他們不再工作,要麼因爲我已將ExpandableListViewExpandableListAdapter(擴展BaseExpandableListAdapter)綁定在一起,所以解決方案無法正常工作。自動滾動Clickable Group of ExpandableListView(與BaseExpandableListAdapter綁定)

這裏是我的問題: 我從靜態文件一個ExpandableListView取回數據的ExpandableListAdapter幫助延長BaseExpandableListAdapter。 我在適配器內實現了getChildView()getGroupView()方法來顯示組項目和子項目。

我無法實現的是所選單擊項目順利自動滾動到頂部。類似這樣的:Auto scrolling in ExpandableListView

上述線程(ListView.setSelection(position))中列出的解決方案不適用於我的情況。我試過了。類似的解決方案(如(android:transcriptMode="disabled or smoothScroll or normal")或(ExpandableListView.smoothScrollToPositionFromTop(scrollTo, 0)))沒有提供所需的結果。我不確定是什麼錯。沒有錯誤或警告或任何東西。

有幾個線程說,要調用您的ExpandableListViewonGroupExpand()方法的適配器。首先,這種方法不再存在,但我想他們指的是現在的getChildView()方法。但是這裏的項目是從View convertView取得的,這是子項目的XML佈局,我沒有ExpandableListView這個佈局。我在我的MainActivity

也許我對這個簡單的問題感到困惑。有人可以引導我缺少什麼,以及如何達到預期的效果?

+0

你嘗試在http://stackoverflow.com/questions/12762958/auto-scrolling-in-expandablelistview的onGroupExpanded答案嗎? onGroupExpanded尚未棄用(https://developer.android.com/reference/android/widget/BaseExpandableListAdapter.html#onGroupExpanded(int))。 – thecoolmacdude

回答

0

我有同樣的問題。在孩子,我只有一個TextView,這是綁定。關鍵在於,在滾動到「擴展組」時,由於綁定,此TextView的高度未知。文本稍後設置。所以,我在我的適配器手動設置:

@Override 
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { 
    InfoModelView info = (InfoModelView) getChild(groupPosition,childPosition); 

    SubitemBinding binding = DataBindingUtil.inflate(LayoutInflater.from(this.context),R.layout.elv_child, parent, false); 

    if (info != null){ 
     binding.setInfo(info); 
     binding.lblListItem.setText(info.getDescription()); 
    } 

    return binding.getRoot(); 
} 

我的事情,現在我不需要更多的所有圍繞綁定的工作人員。

相關問題