2011-10-06 3 views
0

이것이 가능한지 모르겠다. 해당 ID 만 사용하여 목록보기를 부 풀릴 수 있습니까? 감사.Android : 해당 안드로이드 : id를 사용하여 목록보기를 확대

+0

나는 당신이 단지 _layouts_ 즉'ViewGroup'을 팽창시켜야한다고 생각합니다. 어쩌면보기의 가시성을 GONE에서 VISIBLE로 설정하는 것이 좋을까요? –

+0

감사합니다 laurent. 네, XML 파일을 부풀려 봤어요. 그 작품. 그러나이 파일에서 루트 레이아웃의 ID를 사용하여 확장하려고하면 모든 것이 실패합니다. – OckhamsRazor

+0

문서에서 판단 할 때 ID는 XML 파일이어야합니다. 보기가 아닙니다. 다른 솔루션을 찾는데 도움이 필요한 이유를 말씀해 주시겠습니까? –

답변

0

예, 레이아웃 인플레이터 inflates 리소스 ID에서보기.

LayoutInflater inflater = (LayoutInflater)context.getSystemService 
     (Context.LAYOUT_INFLATER_SERVICE); 
listView = inflater.inflate(R.id.your_listview, parentView); 

편집 : 음, 구성 요소가 아닌 일부 XML 레이아웃을 나타내는 레이아웃 ID 여야합니다. 추출 할 뷰 구성 요소가 포함 된 새 XML을 만들면 어떻습니까?

+0

감사합니다. 그러나 자원 유형이 올바르지 않다고합니다. – OckhamsRazor

+0

예. 문서 인용 :'리소스 :로드 할 XML 레이아웃 리소스의 ID (예 : R.layout.main_page) ' –

+0

리소스 ID는 레이아웃 xml 파일이어야합니다. 그러나 더 큰 XML 파일 내에서 특정 레이아웃 만 확장하려고합니다. – OckhamsRazor

2

구성 요소 ID와 레이아웃 ID의 차이에 대해 혼동 스러울 수도 있습니다.

레이아웃 ID는 레이아웃 XML 파일의 이름을 참조합니다. 예를 들어, 레이아웃이 res/layout/home_activity.xml 인 경우 해당 ID는 R.layout.home_activity으로 저장됩니다.

구성 요소 ID는 기존 레이아웃 내부의 UI 구성 요소의 ID를 나타냅니다. 따라서 home_activity.xml 레이아웃 안에 <TextView android:id="@+id/my_textview" />이있을 수 있습니다. 해당보기의 ID는 R.id.my_textview입니다.

레이아웃 ID 만 사용하여 레이아웃을 확장 할 수 있습니다. 'Inflating'컴포넌트 ID는 특정 ID를 가진 View의 하위로 레이아웃을 부 풀리지 않는 이상 이해가되지 않습니다. '당신이 원하는 때마다

<ListView android:visibility="gone" ... /> 

가 그럼 그냥 가시로 설정 View.setVisibility()를 사용 : 이제 일을 더 명확 것을

+0

덕분에 dave. 그게 내 혼란을 진정으로 도왔습니다. 하지만 "특정 ID가있는보기의 자식으로 레이아웃을 부 풀릴"수있는 방법을 알고 있습니까? 예제가 실제로 도움이 될 것입니다. – OckhamsRazor

+0

자, 예를 들어'LinearLayout'에 대한 참조가 이미 있다고 가정 해 봅시다. 그리고 방금 레이아웃을 부 풀렸다 고 가정하면'myInflatedLayout'이라는 이름의'View'가 생깁니다. 'root.addView (myInflatedLayout)'할 수 있습니다. – Dave

1

, 당신이 사용하여 레이아웃 파일에 gone로'풍선 목록보기 '로 설정하는 것이 좋습니다 inflate '

mHiddenListView.setVisibility(View.VISIBLE); 
관련 문제