include继承法,与layout常用属性

使用    <include 直接继承之前的界面

 

 

<?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:orientation="horizontal" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="34dp"
        android:background="#f00"
        android:gravity="center"
        android:text="QQ画报111"
        android:textColor="#fff" />

</LinearLayout>
 

 

 

 

<?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:orientation="vertical" >

    <include
        android:layout_width="match_parent"
        android:layout_height=60dp
        layout="@layout/zzz" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

    </LinearLayout>

    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>
 

 

 

 

<?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:orientation="vertical" >
    
    <include
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        layout="@layout/zzz" />

    <Button
        android:id="@+id/button1"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

</LinearLayout>
 

 

 

 

 

 

layout常用属性

 

第一类:属性值为true或false 

 

    android:layout_centerHorizontal  水平居中 
     android:layout_centerVertical   垂直居中 
    android:layout_centerInparent    相对于父元素完全居中 
    android:layout_alignParentBottom 贴紧父元素的下边缘 
    android:layout_alignParentLeft   贴紧父元素的左边缘 
    android:layout_alignParentRight  贴紧父元素的右边缘 
    android:layout_alignParentTop    贴紧父元素的上边缘 
    android:layout_alignWithParentIfMissing  如果对应的兄弟元素找不到的话就以父元素做参照物 

第二类:属性值必须为id的引用名“@id/id-name” 
    android:layout_below      在某元素的下方 
    android:layout_above      在某元素的的上方 
    android:layout_toLeftOf   在某元素的左边 
    android:layout_toRightOf  在某元素的右边 

    android:layout_alignTop   本元素的上边缘和某元素的的上边缘对齐 
    android:layout_alignLeft  本元素的左边缘和某元素的的左边缘对齐 
    android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐 
    android:layout_alignRight  本元素的右边缘和某元素的的右边缘对齐 

第三类:属性值为具体的像素值,如30dip,40px 
    android:layout_marginBottom              离某元素底边缘的距离 
    android:layout_marginLeft                   离某元素左边缘的距离 
    android:layout_marginRight                 离某元素右边缘的距离 

    android:layout_marginTop                   离某元素上边缘的距离 

FrameLayout:

这个布局可以看成是墙脚堆东西,有一个四方的矩形的左上角墙脚,我们放了第一个东西,要再放一个,那就在放在原来放的位置的上面,这样依次的放,会盖住原来的东西。这个布局比较简单,也只能放一点比较简单的东西。

 

AbsoluteLayout::

绝对布局犹如div指定了absolute属性,用X,Y坐标来指定元素的位置android:layout_x="20px" android:layout_y="12px" 这种布局方式也比较简单,但是在垂直随便切换时,往往会出问题,而且多个元素的时候,计算比较麻烦。

 

 

TableLayout

TableLayout具有的重要属性:
android:shrinkColumns:该属性用来指明需要折行显示的列(实际中很有用!)下标从0开始的,多列用“,”隔开。
android:collapseColumns:该属性设置需要隐藏的列,下标同样是从0开始的,如有多列用“,”隔开。
android:stretchColumns:设置指定的列可伸展,该列会尽量填满可用空间,多列用“,”隔开
TableRow具有的重要属性:
android:layout_column:控件在表格中所处的列,下标从0开始。
android:layout_span:控件跨越的列数。

在TableLayout中包含TableRow

 

LinearLayout:

线性布局,这个东西,从外框上可以理解为一个div,他首先是一个一个从上往下罗列在屏幕上。每一个LinearLayout里面又可分为垂直布局(android:orientation="vertical")和水平布局(android:orientation="horizontal" )。当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。

linearLayout中有一个重要的属性 android:layout_weight="1",这个weight在垂直布局时,代表行距;水平的时候代表列宽;weight值越大就越大。

对齐:layout_gravity
垂直(vertical)的LinearLayout布局内无法通过控件的android:layout_gravity=""进行垂直居中,可以水平居中。
水平(horizontal)的LinearLayout布局内无法通过控件的android:layout_gravity=""进行水平居中,可以垂直居中。
2个都可以用布局的属性android:gravity指定所有控件的居中情况(用center可以水平,垂直居中)。
如果想要某个控件单独水平垂直居中,可以在控件外面再套个LinearLayout,然后android:gravity。

LinearLayout中gravity与layout_gravity
LinearLayout有两个非常相似的属性:android:gravity与android:layout_gravity。他们的区别在于:android:gravity用于设置View组件的对齐方式,而android:layout_gravity用于设置Container组件的对齐方式。
通俗点说就是:
android:gravity属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.该属性就干了这个. 
android:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左靠右等位置就可以通过该属性设置. 
我们弄个最外布局,然后里面包了几个布局,如果要使这几个布局都靠底,就可以在最外布局的属性里设置androi:gravity="botton" 因为gravity是对里面的内容起作用

 

RelativeLayout

RelativeLayout相对布局

  RelativeLayout是一种相对布局,控件的位置是按照相对位置来计算的,后一个控件在什么位置依赖于前一个控件的基本位置,是布局最常用,也是最灵活的一种布局。

  

  我们下面通过XML布局和Java代码布局两种方式分别举例:

一、XML方式布局

  1、创建一个空白Activity

  

  2、打开“res/layout/activity_main.xml”文件,修改成以下代码。

  

  (1)第①部分

  <?xml version="1.0" encoding="utf-8">,每个XML文档都由XML序言开始,在前面的代码中的第一行便是XML序言,<?xml version="1.0">。这行代码表示按照1.0版本的XML规则进行解析。encoding = "utf-8"表示此xml文件采用utf-8的编码格式。编码格式也可以是GB2312。

  如果你对此不太明白,请参阅相关XML文档。

  (2)第②部分

  <RelativeLayout…… 表示采用相对布局管理器。

  (3)第③部分

  Android:layout_width="match_parent" android:layout_height="match_parent"表示布局管理器宽度和高充将填充整个屏幕宽度和高度。

  3、插入三个按钮。

  插入三个按钮,并分别设置其文本为:“第一个按钮”、“第二个按钮”、“第三个按钮”。

  

  我们下一步设置第一个按钮距离左边、上边各20dp,第二个按钮距离第一个按钮左边、上边各10dp;第三个按钮距离第二个按钮上边10dp,与第二个按钮左边对齐。

  4、打开“res/layout/activity_main.xml”文件,修改成以下代码。

  

  (1)第①部分

  设置第一个按钮,以父元素为基准,贴紧左上,距离20dp。  

[java] view plain copy

  1. <Button  
  2.        android:id="@+id/button1"  
  3.       android:layout_width="wrap_content"                //宽度匹配内容  
  4.        android:layout_height="wrap_content"               //高度匹配内容    
  5.        android:layout_alignParentLeft="true"                         //贴紧父元素左边  
  6.        android:layout_alignParentTop="true"               //贴紧父元素上边   
  7.        android:layout_marginLeft="20dp"                              //设置左间距20dp  
  8.        android:layout_marginTop="20dp"                               //设置上间距20dp  
  9.        android:text="第一个按钮" />  

  (2)第②部分

  设置第二个按钮,以第一个按钮为基准,在第一个按钮下面,对齐第一个按钮的右边,上距离15dp。

[html] view plain copy

  1. <Button  
  2.         android:id="@+id/button2"  
  3.         android:layout_width="wrap_content"              //宽度匹配内容  
  4.         android:layout_height="wrap_content"              //高度匹配内容  
  5.         android:layout_below="@+id/button1"              //位置在第一个按钮的下面  
  6.         android:layout_toRightOf="@+id/button1"            //与第一个按钮的右边对齐  
  7.         android:layout_marginTop="15dp"                            //设置上间距15dp  
  8.      android:text="第二个按钮" />  

  (3)第③部分  

  设置第三个按钮,以第二个按钮为基准,在第二个按钮下面,对齐第二个按钮的左边,距离15dp。

[html] view plain copy

  1. <Button  
  2.     android:id="@+id/button3"  
  3.     android:layout_width="wrap_content"              //宽度匹配内容  
  4.     android:layout_height="wrap_content"              //高度匹配内容  
  5.     android:layout_below="@+id/button2"              //位置在第二个按钮的下面  
  6.     android:layout_toLeftOf="@+id/button2"            //与第二个按钮的左边对齐  
  7.     android:layout_marginTop="15dp"                //设置上间距15dp          
  8.     android:text="第三个按钮" />  


  最终显示效果如下:

  

转载于:https://my.oschina.net/ChrisWolfWu/blog/760248

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值