사용자가 확장 및 축소 할 때 상태를 변경해야하는 사용자 정의 groupView가 있습니다. 동일한 그룹보기가 펼쳐져 있으면 두 상태가 서로 전환됩니다.사용자 정의보기가 ExpandableListView의 OnGroupClickListener로 업데이트되지 않습니다.
내가 겪고있는 문제는 expand 메서드를 호출 한 후 내 업데이트가 표시되지 않기 때문에 expand 메서드가 일부 캐시 된 버전의 뷰를 가져 오는 것 같습니다.
내 리스너가 expandGroup을 호출하지 않고 true (전체 이벤트 자체를 처리 함)를 반환하면 업데이트가 수행됩니다. 그래서 무언가가 일어나고있는 것은 오직 캐시 된 뷰만이 그려지도록하는 expandGroup입니다. 나는 모든 것에 대해 무효화()를 시도했다. 목록보기에서 데이터 업데이트 이벤트를 실행하려고 시도했습니다. 나뿐만 아니라 모든 다른 물건을 시도했다 :
expandableList.setGroupIndicator(null);
expandableList.setAlwaysDrawnWithCacheEnabled(false);
expandableList.setWillNotCacheDrawing(true);
expandableList.setItemsCanFocus(false);
사람들의에 행운이 :(
여기 내 온 클릭 코드입니다!
expandableList.setOnGroupClickListener(new OnGroupClickListener() {
public boolean onGroupClick(ExpandableListView parent, View v,
int groupPosition, long id) {
MusicTrackRow mt = (MusicTrackRow) v;
if (mt.isPlaying == true) {
mt.setPaused();
} else {
mt.setPlaying();
}
mt.invalidate();
parent.invalidate();
trackAdapter.notifyDataSetInvalidated();
//need to call expandGroup if the listener returns true.. if returning false expandGroup is //returned automatically
expandableList.expandGroup(groupPosition); //no view refresh
return true;