2014-10-04 70 views
1

我在这里遇到一种情况,我正在折叠所有组,并且只保留一个组。但扩大后的团队不在场,我希望我的扩展团队始终处于第一个可见的位置。Expandible ListView使扩展的组位置成为第一个可见的位置

这是我所做的折叠所有视图。

@Override 
    public void onGroupExpanded(int groupPosition) { 
     super.onGroupExpanded(groupPosition); 
     ExpandableListView list=(ExpandableListView)mFragment.getmListCategories(); 
     int len = getGroupCount(); 
     for (int i = 0; i < len; i++) { 
      if (i != groupPosition) { 
       list.collapseGroup(i); 
      } 
     } 

    } 

,我曾尝试以下,以保持该扩展群可见

@Override 
    public boolean onGroupClick(ExpandableListView parent, View v, 
      int groupPosition, long id) { 
     int h1 = mListCategories.getHeight(); 
     int h2 = v.getHeight(); 

//  mListCategories.smoothScrollToPositionFromTop(groupPosition, (h1/2)-(h2/2), 00); 
//  mListCategories.setSelectionFromTop(groupPosition, 0); 
     Config.debug("Scroll groupPosition "+groupPosition); 

//  mListCategories.smoothScrollToPositionFromTop(0, v.getTop() - (v.getHeight()/2) + (v.getHeight()/2), 0); 


     return false; 
    } 

他们都不是正常工作。任何帮助,将不胜感激。在此先感谢;-)

+0

你可以试试mListCategories.setSelectedGroup(groupPosition)吗? – 2014-10-06 06:17:14

+0

我也是这么做的。 @AtolOHolic – Manoj 2014-10-06 06:43:11

+1

你需要在onGroupExpanded方法中做到这一点。除了这个设置android:transcriptMode =“禁用”的listview。如果这不工作只是尝试mListCategories.setSelection(groupPosition) – 2014-10-06 06:50:31

回答

0

您可以在此处执行的操作是在onGroupExpanded()方法中,您可以获取在折叠其他人后展开的视图的x和y坐标。然后您可以拨打ListView.setScroll(x,y)滚动到展开视图。

+0

您好我已经尝试setScroll(x,y),但它显示滚动后的空白空间。然后我必须手动滚动才能正常工作。 – Manoj 2014-11-12 09:12:25

0

设置android:transcriptMode =“disabled”在你的ExpandableListView上。

<ExpandableListView 
    android:id="@+id/expadableListView" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:transcriptMode="disabled" 
    android:fastScrollEnabled="true" 
    android:groupIndicator="@null" 
    />