2014-12-19 3 views
0

큰 레이아웃의 일부로 상대 레이아웃이 있습니다.부모보기에서 자식보기로 가시성 전파

<FrameLayout> 
    <CustomScrollWidget/> 
    <LinearLayout> 
     <include layout="@layout/layout_header"/> 
     <CustomWidget/> 
    </LinearLayout> 
    <View/> 
</FrameLayout> 

layout_header.xml :

<LinearLayout id= "header"> 
    <View/> 
    <RelativeLayout> 
     <Child views> 
    </RelativeLayout> 
    <RelativeLayout 
     id="abc" 
     visibility="gone"> 
     <LinearLayout> 
      <CustomWidget/> 
      <CustomWidget/> 
      <CustomWidget/> 
     </LinearLayout> 
     <CustomWidget/> 
    </RelativeLayout> 

자바 코드 :

상대 레이아웃의 아이 뷰는

overview.xml 선형 레이아웃 (어떤 사용자 정의 위젯을 보유) 및 사용자 정의 위젯입니다

RelativeLayout rel; 
View viewHeader; 

final View root = inflater.inflate(R.layout.overview, container, false); 
viewHeader = root.findViewById(R.id.header); 
rel = (RelativeLayout) viewHeader.findViewById(R.id.abc); 
if(true){ 
    rel.setVisibility(View.GONE); 
} 
else{ 
    rel.setVisibility(View.VISIBLE); 
} 

상대 레이아웃 ID "abc"의 하위 뷰는 항상 v입니다. 이블. 어떻게 해결할 수 있을까요? 상대 레이아웃의 가시성이 사라지도록 설정할 때 자식 뷰를 없애기를 원합니다.

+0

당신은 틀린 뭔가를하고 있어야합니다. 부모보기를 숨기면 모든 자식이 숨겨집니다. –

+0

네가 맞아, 내 gradle이 동기화되지 않았고 이전 데이터를 가져 가고 있었다. 이제 동기화 문제를 해결했을 때 효과가있었습니다. 감사합니다 – user3722531

답변

1

부모/루트 (cotaniner) 레이아웃을 숨기면이 레이아웃의 하위 항목도 항상 표시되지 않습니다.

+0

상대 레이아웃은 다른 레이아웃의 일부입니다. 전체 레이아웃을 지나서 아이디어를 얻을 수도 있습니다. – user3722531

+0

맞습니다. 내 gradle이 동기화되지 않았고 이전 데이터를 사용하고있었습니다. 이제 동기화 문제를 해결했을 때 효과가있었습니다. 감사 – user3722531

관련 문제