我想充气 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>
答案 0 :(得分:2)
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>
然后你可以膨胀你需要的任何一个。
答案 1 :(得分:0)
从XML布局创建View对象并不需要进行膨胀调用。你应该使用findViewByID初始化视图,在这种情况下是TextView。
你能解释一下你究竟尝试使用TextView的膨胀调用吗?