使用viewstub实现嵌套布局

    技术2024-12-14  47

    iewstub的使用是比较简单的。他就仿佛是个layout。然后把其他的布局文件看作是一个view标签  然后把这些view标签往这个layout中填充, 当然 这个layout也可以有自己的布局方式  所以我把他理解成为嵌套布局。

    源码下载地址: http://zhengxdstudy.googlecode.com/svn/trunk/zhengxdstudy/viewstub

    效果图

     

     

    viewstub布局文件

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     >

        <ViewStub           android:id = "@+id/stub_import"           android:inflatedId = "@+id/panel_import"      android:layout = "@layout/index"  指定index.xml布局文件     android:layout_width = "fill_parent"      android:layout_height = "wrap_content"      android:layout_gravity = "bottom"/> 

        <include layout="@layout/foot" /> 引用foot.xml布局文件 </LinearLayout>

     

    index.xml

    <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     android:fillViewport="true" > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical"     android:layout_width="fill_parent"     android:layout_height="fill_parent"

        >      <TextView          android:layout_width="fill_parent"         android:layout_height="20px" />

         <TextView          android:layout_width="fill_parent"         android:layout_height="10px" />     <Button          android:id="@+id/photo"         android:layout_width="280px"         android:layout_height="40px"         android:layout_gravity="center"         android:text="xx1                                              > "

        />      <TextView          android:layout_width="fill_parent"         android:layout_height="10px" />     <Button          android:id="@+id/putOut"         android:layout_width="280px"         android:layout_height="40px"         android:layout_gravity="center"         android:text="xx 2                                           >"

        />      <TextView          android:layout_width="fill_parent"         android:layout_height="10px" />        <Button          android:id="@+id/bbs"         android:layout_width="280px"         android:layout_height="40px"         android:layout_gravity="center"         android:text="xx   3                                           >"

        /> </LinearLayout> </ScrollView>

     

    foot.xml

    <?xml version="1.0" encoding="utf-8"?>

        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"             android:orientation="horizontal"             android:layout_width="fill_parent"             android:layout_height="380px"     >

        <Button          android:id="@+id/login"         android:layout_width="80px"         android:layout_height="40px"         android:layout_gravity="center"         android:text="登录 "

        />       <Button          android:id="@+id/search"         android:layout_width="80px"         android:layout_height="40px"         android:layout_gravity="center"         android:text="搜索 "

        />      <Button          android:id="@+id/help"         android:layout_width="80px"         android:layout_height="40px"         android:layout_gravity="center"         android:text="帮助 "

        />      <Button          android:id="@+id/quit"         android:layout_width="80px"         android:layout_height="40px"         android:layout_gravity="center"         android:text="退出 "

        />

         </LinearLayout>

     

    Activity加载

    import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.ViewStub;

    public class viewstub extends Activity {     /** Called when the activity is first created. */     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);         //((ViewStub) findViewById(R.id.stub_import)).setVisibility(View.VISIBLE);             View importPanel = ((ViewStub) findViewById(R.id.stub_import)).inflate();      } }

    最新回复(0)