android include控件的使用

作者:高山岩

        我们知道,基于android系统的应用程序的开发,界面设计是非常重要的,它关系着用户体验的好坏。一个好的界面设计,不是用一个xml布局就可以搞定的。当一个activity中的控件非常多的时候,所有的布局文件都放在一个xml文件中,很容易想象那是多么糟糕的事情!笔者通过自身的经历,用include控件来解决这个问题,下面是一个小例子,仅仅实现的是布局,没有响应代码的设计。


**************user.xml文件内容如下:***************************************


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

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"        
        android:text="用户名: " />
    <EditText 
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:id="@+id/userName"
        android:hint="请输入用户名" 
        />
</LinearLayout>

 **************passwd.xml文件内容如下:***************************************


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

     <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"        
        android:text="密     码:" />
    <EditText 
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:id="@+id/passWd"
        android:hint="请输入密码" 
        />
</LinearLayout>


 **************login.xml文件内容如下:***************************************

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

    <Button 
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:id="@+id/bt"
        android:hint="确定"
        
       />
    <Button 
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:id="@+id/reset"
        android:layout_toRightOf="@id/bt"
        android:hint="重置"        
       />
</RelativeLayout>

**************main.xml文件内容如下:***************************************


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

<RelativeLayout 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    android:layout_alignParentBottom="true">

 <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/head"
    android:layout_alignParentTop="true">
  
      <include      
      android:layout_width="fill_parent"
      layout="@layout/user">
      </include>  
 </LinearLayout>
  
  <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/middle"
    android:layout_below="@id/head"
    android:layout_alignParentLeft="true">
       
      <include      
      android:layout_width="fill_parent"
      layout="@layout/passwd">
      </include>     
        
   </LinearLayout>
     
   <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/foot"
    android:layout_below="@id/middle"
    android:layout_alignParentRight="true">  
  
      <include      
      android:layout_width="fill_parent"
      layout="@layout/login">
      </include> 
      
     </LinearLayout>  
</RelativeLayout>  
</LinearLayout>


***********************程序运行结果如下:****************************




如果在main.xml中这样写:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    android:layout_alignParentBottom="true">
  
      <include      
      android:layout_width="fill_parent"
      layout="@layout/user">
      </include>  
       
      <include      
      android:layout_width="fill_parent"
      layout="@layout/passwd">
      </include>            
   
      <include      
      android:layout_width="fill_parent"
      layout="@layout/login">
      </include>      
  
</LinearLayout>


******************那么该情况下的运行结果如下:*************************




很显然运行结果与预期不符,接下来的四个控件出不来,为什么呢?(想必大家在做实验的时候,肯定遇到过这个问题!)

其实关键的地方是main文件中对各个xml的布局,没有相应的布局,结果是非常惨的,大家可以根据我的代码在修改下相应的布局,体会下main中布局的重要性!



评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值