2017-01-07 1 views
1

"main2-1", "main2-2", "main2-2"의 예제에서는 "main1"(확장 가능 항목)의 경우 서로 안에 여러 개의 확장 가능한 항목이있는 서랍이 있습니다. "main3-1", "main3-2", "main3-3"(일반 항목)접을 수없는 확장 가능한 항목 내부의 항목 하나만 펼치기

"main2"수준에서 하나의 ExpandedItem 만 허용하려고합니다 (main2-1, 2-1, 2-3) 도 "main1"의 레벨

"결과"가 사용중인 서랍 라이브러리 인 result.getAdapter().withOnlyOneExpandedItem(true);을 시도했습니다. - "main2 "레벨의 첫 번째 항목을 확장하는 대신 레벨

또한, this 방법은 다른 확장 항목의 제 3의 클릭으로 작동하지 않습니다 - I 앱이를 입력해야하는 로그와 일 코드까지 따라하지만 붕괴하지 않는 이전

if(previousExpandableItemPosition != position) { 
    result.getAdapter().collapse(previousExpandableItemPosition); 
    previousExpandableItemPosition = position; 
} 

답변

0

나는 단지 그들 중 하나가 확장 가지고 내가 원하는 확대 항목의 OnClick에 배치하는 방법을 만들었습니다 여기가

if (position != previousPosition && previousPosition != 0 && previousIdentifier != drawerItem.getIdentifier()) { // WithOnlyOneExpandableItem 
           IDrawerItem itemx = result.getAdapter().getItem(previousPosition); 
           if (itemx.isExpanded()) { 
            itemx.withIsExpanded(true); 
            result.updateItem(itemx); 
           } else { 
            if(previousPosition > position){ // user is going upward 
             itemx = result.getAdapter().getItem(previousPosition + result.getAdapter().getItem(position).getSubItems().size()); 
             if (itemx.isExpanded()) { 
              itemx.withIsExpanded(true); 
              result.updateItem(itemx); 
             }else{Log.i("ppppppppppppp", String.valueOf(previousPosition + (previousPosition - position)));} 

            }else if(previousPosition > position){ // user is going downward 
             itemx = result.getAdapter().getItem(previousPosition + (previousPosition 
               + result.getAdapter().getItem(previousPosition).getSubItems().size())); 
             if (itemx.isExpanded()) { 
              itemx.withIsExpanded(true); 
              result.updateItem(itemx); 
             }else{Log.i("ppppppppppppp", String.valueOf(previousPosition + (previousPosition - position)));} 
            } 
           } 
          } else if (previousPosition != 0 && previousIdentifier == drawerItem.getIdentifier()) { 
           //if the drawer item is collapsed after expanding then deselect it 
           EnterTimes++; 
           if(!result.getAdapter().getItem(position).isExpanded()){ 
            EnterTimes=1; 
           } 
           if(EnterTimes <2){ 
            result.getAdapter().getItem(position).withSetSelected(false); 
            result.updateItem(drawerItem); 
           } 
          } 
          previousIdentifier = (int) drawerItem.getIdentifier(); 
           previousPosition = position; 

그리고에서 onCreate 전에 int previousPosition = 0, previousIdentifier = 0;

다른 사람을 돕는 것입니다
관련 문제