2016-05-27 35 views
0

グループヘッダーをクリックすると、一度に1つのグループヘッダーを開くexpandablelistviewが表示されます。最初にグループヘッダーをクリックするといつでも正常に動作しますが、グループヘッダーの後続のクリックはクリックされたグループヘッダーを表示から離して先頭にプッシュします。グループヘッダーをトップに置くにはどうしたらいいですか?Expandablelistviewグループヘッダークリック時にフォーカスが失われる

list.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { 
     @SuppressLint("NewApi") 
     @Override 
     public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { 
     // parent.smoothScrollToPositionFromTop(groupPosition, 0); 
      parent.setSelectionFromTop(groupPosition,0); 

      return false; 
     } 
    }); 
    list.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { 


     @Override 
     public void onGroupExpand(int groupPosition) { 
      if (lastExpandedPosition != -1 && groupPosition != lastExpandedPosition) { 
       list.collapseGroup(lastExpandedPosition); 
      } 
      lastExpandedPosition = groupPosition; 
     } 
    }); 

答えて

1

onGroupClick()メソッドに次のコードを使用します。かつて私はこのように解決しました。それがあなたのために役立つことを願っています

Handler handler = new Handler(); 
handler.postDelayed(new Runnable() { 
    @Override 
    public void run() { 
     parent.smoothScrollToPositionFromTop(groupPosition, 0); 
    } 
},100); 
+0

ありがとうございました。クリックしたヘッダーを最初に見えるようにするにはどうすればいいですか? –

関連する問題