美文网首页
LinerLayout与RelativeLayout的需要注意的

LinerLayout与RelativeLayout的需要注意的

作者: 弗念腾 | 来源:发表于2017-09-19 20:27 被阅读0次

    一、共同点

    padding 指的是该容器到边距的距离填充多大,padding四周填充,对应的看单词便很明了,不再翻译还有paddingLeft、 paddingRinght、 paddingBottom、 paddingTop、paddingStart、 paddingEnd
    margin 两个边距之间的距离 Margin 四周边距的距离,对应的还有 MarginLeft、MarginRinght、MarginBottom、MarginTop、MarginStart、MarginEnd
    layout_gravity 控件本身的位置 center 在布局的重心位置 centerHorizontal 水平方向居中 centerVertical 垂直方向居中 bottom 、 top、 left、 right、 fill垂直与水平方向均充满、 fill_horizotal 水平方向充满、 fill_vetical垂直方向充满、 clip_Horizontal、 clip_Vertical、 end、 start
    gravity 控件中内容的位置 center 子控件父控件的重心位置,其它属性值为:centerHorizontal 、 centerVertical、 bottom、 top、 left 、 ringht、 fill fill_horizotal、 fill_vetical、 clip_Horizontal 、 clip_Vertical、 end 、 start

    注意:若布局为LinerLayout,当LinerLayout的oritation= “vertical”时,那么layout_gravity垂直方向如:centerVertiacl 、bottom、top、fill_vetical、clip_vertical的属性就失效了;同理,当LinerLayout=“horizon”时,centerHorizontal、fill_horizotal、clip_Horizontal等失效。

    二、LinerLayout独有

    只能沿某一水平或者垂直方向排列,故经常以嵌套方式实现稍微灵活一点的排列布局。
    oritation=“vertical”沿垂直方向排列
    oritation=“horizon”沿水平方向排列
    layout_weight 比重 一般用于等距分割各个控件间的距离,而不是根据某个屏幕的宽度或高度计算出控件间的距离,这样到尺寸不同的屏幕后就不适应了。
    layout_weight 的值越大,所占的比重越大。

    注意:如果要使控件在布局中水平等距排列,这时控件的layout_weight="0dp",layout_weitht="1"; 如果要使控件在布局中垂直等距排列,这时控件的layout_height="0dp",layout_weitht="1"

    三、RelativeLayout独有

    布局比较灵活,不需要多层嵌套,降低LinerLayout的嵌套层级。
    主要用于布局是非线性排列的情况,要为每个控件加上layout_id="@id/x"属性,然后再确定另一个控件是相对于那个控件的哪个位置,属性主要有以下所列出的:
    a对于b的位置:layout_toEndOf 、 layout_toLeftOf、 layout_toRightOf、 layout_toStartOf 、 layout_bellow、 layout_above
    沿着父布局的位置layout_alignParentRight --在父布局的右边边距对齐、layout_alignParentTop沿着父布局的顶端边距对齐、 layout_alignBaseline layout_alignParenEnd 、 layout_alignParentLeft、 layout_alignParentStart layout_alignRight
    沿着x控件的边距对齐:layout_alignLeft--在x控件的左边距对齐、 layout_alignStart 、 layout_alignStart、 layout_alignTop、 layout_alignEnd 、 layout_alignLeft

    四、应用以上这些属性已经足以应付一些比较简单的布局分布了,下面是一个实例:

    <?xml version="1.0" encoding="utf-8"?>
     <RelativeLayout     xmlns:android="http://schemas.android.com/apk/res/android"                          android:orientation="vertical"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
       android:layout_marginLeft="20dp"
       android:layout_marginRight="20dp">
      <View
        android:id="@+id/r1"
        android:layout_marginTop="20dp"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/colorPrimary"/> 
    <View
        android:id="@+id/r2"
        android:layout_below="@+id/r1"
        android:layout_marginTop="20dp"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/colorPrimary"/>
    <View
        android:id="@+id/r3"
        android:layout_below="@+id/r2"
        android:layout_marginTop="20dp"
        android:layout_width="60dp"
        android:layout_height="20dp"
        android:background="@color/colorAccent"/> <View
        android:id="@+id/r4"
        android:layout_below="@+id/r2"
        android:layout_alignParentRight="true"
        android:layout_marginTop="20dp"
        android:layout_width="60dp"
        android:layout_height="20dp"
        android:background="@color/colorAccent"/><LinearLayout
        android:layout_below="@+id/r3"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_marginTop="70dp" >
    <View
        android:id="@+id/r6"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@color/colorPrimaryDark"/>
    <View
        android:id="@+id/r7"
        android:layout_width="0dp"
        android:layout_marginLeft="10dp"
        android:layout_height="100dp"
        android:layout_weight="1"
        android:background="@color/colorPrimaryDark"/>
    <View
        android:id="@+id/r8"
        android:layout_width="0dp"
        android:layout_marginLeft="10dp"
        android:layout_height="100dp"
        android:layout_weight="1"                                                        
        android:background="@color/colorPrimaryDark"/>
     </LinearLayout>
     </RelativeLayout>
    
    image.png

    相关文章

      网友评论

          本文标题:LinerLayout与RelativeLayout的需要注意的

          本文链接:https://www.haomeiwen.com/subject/tyllsxtx.html