2013-06-03 1 views
0

Как использовать LayoutInflator для получения только части макета, который должен быть встроен в другой макет, а не встраивать весь макет.layoutinflator - можем ли мы надуть только часть макета

Предположим, что у меня есть макет под названием «fromlayout», который имеет два TextViews с идентификатором «один» и «два» и другой макет сказать «tolayout», к которому я хочу добавить только TextView «один» получается из другого расположение fromlayout.

ответ

0

Накачайте весь View и вызовите метод findViewById() на основании результата надувателя, чтобы получить то, что вам нужно.

+0

я пытался, но приложение разбился – tejinder

0

Все, что вам нужно сделать, это это.

LayoutInflater li = LayoutInflater.from(fromView); 
View yourView = li.inflate(R.layout.to, null); 

TextView tv = (TextView) yourView.findViewById(...); 
+0

Ниже приведен код, но он не работает общественного недействительными Doit (View v) \t { \t \t LinearLayout ll = (LinearLayout) findViewById (R.id.top1); \t \t LayoutInflater li = LayoutInflater.from (this); \t \t Просмотреть vv = li.inflate (R.layout.from, null); \t \t Кнопка vt = (кнопка) vv.findViewById (R.id.b3); \t \t ll.addView (vt); \t \t \t} – tejinder

+0

Какая ошибка вы получаете? –

+0

приложение сбой – tejinder

0

Похоже, вы пытаетесь решить проблему, которой не должны быть. Если oneTextView является то, что вы хотите более одного макета, вы можете создать его экземпляр программно, или вы можете поместить его в свой собственный файл макета, а затем включить его в fromLayout и toLayout (или раздуть его программно.

0

Использование ViewStub

в вашем fromLayout вы можете создать один ViewStub.

<View android:id="@+id/One" 
... 
/> 
    <ViewStub android:id="@+id/stub" 
        android:inflatedId="@+id/subTree" 
        android:layout="@layout/mySubTree" 
        android:layout_width="120dip" 
        android:layout_height="40dip" /> 

Теперь, если вы завышать fromLayout вы получите только один вид и раздувать ViewStub вам нужно раздувать его отдельно.

Если вам требуется View 2, то вы можете надуть ViewStub как:

ViewStub stub = (ViewStub) findViewById(R.id.subTree); 
View inflated = stub.inflate(); 
Смежные вопросы