1

我想充气 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>
4

2 回答 2

2

LayoutInflater作品只在R.layout.*。如果您只想对TextView. 如果您有时需要容器而不需要其他容器,则可以将 包含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>

然后你可以给你需要的任何一个充气。

于 2011-08-03T00:03:22.327 回答
0

从 XML 布局创建 View 对象实际上并不需要 inflate 调用。您应该使用 findViewByID 来初始化视图,即在这种情况下为 TextView。

你能解释一下你到底想对 TextView 使用膨胀调用吗?

于 2011-08-02T19:07:49.847 回答