我的 main.xml 布局只包含一个按钮和一个LinearLayout
content_area ,如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/myBtns"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="horizontal"
>
<Button
android:id="@+id/btn_one"
android:layout_width="100dip"
android:layout_height="30dip"
android:text="button one"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/content_area"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<!--inflate layout here-->
</LinearLayout>
</LinearLayout>
我有另一个布局( content_one.xml ),它将用于嵌入(膨胀)到 main.xml的content_area
(id值)布局:
content_one.xml :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView.../>
...
<Button .../>
</LinearLayout>
我尝试使用LayoutInflater
将 content_one.xml 嵌入到 main.xml 的content_area
中:
public class MyActivity extends Activity{
private LinearLayout contentArea;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
contentArea= (LinearLayout) findViewById(R.id.content_area);
LayoutInflater inflater = (LayoutInflater)MyActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View inflatedView = (View) inflater.inflate(R.layout.content_one, null);
contentArea.addView(inflatedView);
}
但它不起作用, content_one.xml 不会显示在 main.xml 的content_area
中。我在eclipse中从LogCat获得了以下错误消息
(请鼠标右键单击下图并查看图像)
为什么我的LayoutInflater不起作用?我哪里错了?
答案 0 :(得分:2)
View
正确膨胀,但fill_parent
布局上的myBtns
高度,因此其他LinearLayout不可见。如果您将其更改为wrap_content
,则可以看到另一个LinearLayout。