如何在android中插入布局到布局?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/12071829/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
how to insert layout to layout in android?
提问by kongkea
I've got two layouts first and second, I want to insert second to first. I want to insert second layout into layout that has id @+id/layout when I press button Get Layout, it show the the second layout on the bottom of button
我有两个布局,第一个和第二个,我想插入第二个到第一个。当我按下按钮获取布局时,我想将第二个布局插入具有 id @+id/layout 的布局中,它在按钮底部显示第二个布局
first layout
第一个布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/btn_get_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Get Layout" />
<LinearLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
</LinearLayout>
second layout
第二个布局
<?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:background="@drawable/card_base"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/img_cover"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_margin="10dp"
android:scaleType="fitXY"
android:src="@drawable/card_beauty" />
<ImageView
android:id="@+id/img_photo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_margin="20dp"
android:scaleType="fitXY"
android:src="@drawable/sample_0" />
</RelativeLayout>
</LinearLayout>
回答by ColdFire
if I understood you right you should use the following code within your first layout
如果我理解正确,您应该在第一个布局中使用以下代码
<include
layout="@layout/second_layout"
android:id="@+id/includedLayout"
android:visibility="gone"
android:layout_below="@id/buttonId" />
and then in your button's action you just use
然后在您的按钮操作中,您只需使用
((RelativeLayout)findViewById(R.id.includedLayout)).setVisibility(View.VISIBLE);
回答by Sameer
LinearLayout placeHolder = (LinearLayout) findViewByid(R.id.layout);
getLayoutInflater().inflate(R.layout.second_layout, placeHolder);
回答by Suragch
Use include
用 include
Here is a somewhat fuller example. The square blue layout is inserted into the main layout using include
.
这是一个更完整的例子。使用 将方形蓝色布局插入到主布局中include
。
activity_main.xml
活动_main.xml
This is the main layout. The custom layout is referenced using include
. You can override any of the attributes here, too.
这是主要布局。使用 引用自定义布局include
。您也可以在此处覆盖任何属性。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">
<!-- Here is the inserted layout -->
<include layout="@layout/my_layout"/>
</RelativeLayout>
my_layout.xml
my_layout.xml
This is the custom layout that will be inserted into the main layout.
这是将插入到主布局中的自定义布局。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@color/colorPrimary">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:padding="5dp"
android:text="My Layout"/>
</RelativeLayout>
回答by Febin Mathew
You Should use this code snippet to add a Layout inside another one.
您应该使用此代码片段在另一个中添加一个布局。
parentLayout=(LinearLayout)findViewById(R.id.parentLayout);
inflateView=View.inflate(this,R.layout.view_video,parentLayout);
Here the parentLayout
is the root View and R.layout.view_video
is the layout that you need to insert.
这里parentLayout
是根视图,R.layout.view_video
是您需要插入的布局。
回答by Chitranshu Asthana
Use LayoutInflator to inflate an external layout into existing layout. Checkout LayoutInflateron Android Dev Site for more information about it.
使用 LayoutInflator 将外部布局膨胀到现有布局中。查看Android Dev Site 上的LayoutInflater了解更多信息。