2012-12-18 3 views
1

app_view으로 저장된 LinearLayout이 있습니다.부모가없는 경우 선형 레이아웃의 자식 요소를 클릭 할 수 없도록합니다.

사이드 바에 app_view을 슬라이드 할 때가 있습니다. 현재 app_view의 모든 내용을 클릭 할 수 없도록 설정하고 싶습니다.

사이드 바를 표시하는 동안 레이아웃의 작은 조각을 클릭 할 수 없도록하고 싶습니다.

app_view.setClickable(false) 설정을 시도했지만 모든 하위 요소에 클릭 가능을 설정하지 않은 것 같습니다.

이러한 유형의 상황에 접근하는 가장 좋은 방법은 무엇입니까?

+0

왜? 나는이 질문에 필요한 모든 코드를 포함시켰다. – ardavis

+0

'app_view.setClickable (false)'는 클릭을 자식에게 줄 것입니다. 그것은 당신의 문제를 해결하지 못할 것입니다. :) 나는 당신이'app_view'에'onTouchListener'를 시도하고'true'를 리턴 할 수 있다고 생각합니다. –

+0

onTouchListener를 설정하고 true/false를 반환하는 행운은 없습니다. 둘 다 요소를 계속 클릭 할 수 있습니다. – ardavis

답변

-1
public static void setClickableRecursive(View view, boolean isClickable){ 
    if(view instanceof ViewGroup){ 
     ViewGroup group = (ViewGroup) view; 
     for(int i = 0; i < group.getChildCount(); i++){ 
      setClickableRecursive(group.getChildAt(i), isClickable); 
     } 
    }else{ 
     view.setClickable(isClickable); 
    } 
} 
관련 문제