раздувать вид против раздувания элемента - PullRequest
1 голос
/ 02 августа 2011

Я бы хотел надуть R.id.catText, но он никогда не показывает, раздуваю ли я сам. Если я раздуваю R.id.assets (контейнер), то оба элемента отображаются нормально. Я просто не хочу контейнер. Как я могу надуть R.id.catText без надуть R.id.assets?

Кроме того, могу ли я накачать R.id.catText до объекта? например.

TextView catText = inflater.inflate(R.id.catText);
someView.addView(new catText());

мой код:

LinearLayout myRoot = (LinearLayout) findViewById(R.id.assets);
LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.assets, myRoot, false);

мой стиль:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 android:layout_width="match_parent" 
 android:layout_height="match_parent" 
 android:weightSum="1" 
 android:padding="50px" android:id="@+id/assets">
    <TextView android:id="@+id/catText" android:text="TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#ff0000"></TextView>
</LinearLayout>

Ответы [ 2 ]

2 голосов
/ 03 августа 2011

LayoutInflater работает только на R.layout.*. Если вы хотите накачать только TextView, вы должны поместить его в собственный XML-файл макета. Если вам иногда нужен контейнер, но не другие, вы можете включить TextView в макет контейнера.

В catText.xml:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/catText" 
    android:text="TextView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textColor="#ff0000"/>

В XML-файле контейнера:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:weightSum="1" 
    android:padding="50px"
    android:id="@+id/assets">
    <include layout="@layout/catText"/>
</LinearLayout>

Тогда вы можете надуть то, что вам нужно.

0 голосов
/ 02 августа 2011

Создание объектов View из макетов XML на самом деле не нуждается в вызове надувания.В этом случае вы должны использовать findViewByID для инициализации Views, т. Е. TextView.

Не могли бы вы объяснить, для чего именно вы пытаетесь использовать вызов inflate для TextView?

...