码迷,mamicode.com
首页 > 其他好文 > 详细

布局(LinearLayout,RelativeLayout,FrameLayout,TableLayout,GridLayout,ConstraintLayout)

时间:2021-06-30 18:44:14      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:span   开始   容器   encoding   包含   空间   frame   add   bottom   

LinearLayout

  • layout_gravity:组件在父容器里的对齐方式
  • gravity:组件包含的所有子元素的对齐方式
  • layout_weight:在原有基础上分配剩余空间,一般把layout_height都设置为0dp再使用此属性
  • 设置分割线可以用divider属性,或者插入View
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:gravity="center_horizontal|bottom"
    android:divider="@drawable/ic_baseline_horizontal_rule_24"
    android:showDividers="middle"
    android:dividerPadding="20dp"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <View android:layout_height="1dp"
        android:layout_width="match_parent"
        android:background="#ff0000"/>

    <LinearLayout android:layout_height="100dp"
        android:layout_gravity="left"
        android:layout_width="100dp"
        android:background="#ff0000"/>

    <LinearLayout android:layout_height="100dp"
        android:layout_width="100dp"
        android:background="#00ff00"/>

    <LinearLayout android:layout_height="100dp"
        android:layout_width="100dp"
        android:background="#0000ff"/>

</LinearLayout>

RelativeLayout

  • 可以根据父容器定位,也可以根据兄弟组件定位
  • margin设置组件与父容器的边距
  • padding设置组件内部元素的边距
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:padding="10dp"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <RelativeLayout
        android:id="@+id/lt1"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_centerInParent="true"
        android:background="#ff0000"/>

    <RelativeLayout
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_above="@id/lt1"
        android:layout_margin="100dp"
        android:background="#00ff00"/>

</RelativeLayout>

FrameLayout

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

    <FrameLayout android:layout_height="300dp"
        android:layout_width="300dp"
        android:background="#ff0000"/>

    <FrameLayout android:layout_height="200dp"
        android:layout_width="200dp"
        android:foreground="@drawable/ic_baseline_language_24"
        android:foregroundGravity="right|bottom"
        android:background="#0000ff"/>

    <FrameLayout android:layout_height="100dp"
        android:layout_width="100dp"
        android:background="#00ff00"/>


</FrameLayout>

TableLayout

  • collapseColumns:隐藏列,从0开始

  • stretchColumns:有剩余空间才会拉伸

android:collapseColumns="1,3"
android:stretchColumns="2"
  • shrinkColumns:有挤压的时候才能收缩
  • layout_column:显示在第几列
  • layout_span:横向跨几列
<?xml version="1.0" encoding="utf-8"?>
<TableLayout android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:shrinkColumns="2"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <TableRow>
        <Button android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_span="2"
            android:text="按钮0"/>

        <Button android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_column="3"
            android:text="按钮1"/>
    </TableRow>

    <TableRow>
        <Button android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="按钮0"/>

        <Button android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="按钮1"/>

        <Button android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="按钮2"/>

        <Button android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="按钮3"/>

        <Button android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="按钮4"/>
    </TableRow>

    <Button android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="按钮0"/>

    <Button android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="按钮1"/>

</TableLayout>

GridLayout

  • columnCount、rowCount:最大行列数,与orientation配合使用
  • layout_row、layout_column:显示所在行列
  • layout_columnWeight:横向剩余空间分配方式
  • layout_columnSpan:横向跨列,配合layout_gravity使用
<?xml version="1.0" encoding="utf-8"?>
<GridLayout android:layout_height="match_parent"
    android:layout_width="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <Button android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="按钮0"/>

    <Button android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_row="1"
        android:layout_column="0"
        android:layout_columnSpan="3"
        android:layout_gravity="fill"
        android:text="按钮1"/>

    <Button android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_row="0"
        android:layout_column="1"
        android:text="按钮2"/>

    <Button android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_columnWeight="1"
        android:layout_rowWeight="1"
        android:text="按钮3"/>

    <Button android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="按钮4"/>
</GridLayout>

ConstraintLayout

布局(LinearLayout,RelativeLayout,FrameLayout,TableLayout,GridLayout,ConstraintLayout)

标签:span   开始   容器   encoding   包含   空间   frame   add   bottom   

原文地址:https://www.cnblogs.com/sprinining/p/14954976.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!