Android布局控件之常用linearlayout布局

下面是“Android布局控件之常用LinearLayout布局”的完整攻略。

常用LinearLayout布局

LinearLayout布局简介

LinearLayout布局是Android中最基本、最常用的布局之一,其主要作用是将子控件按照线性方向依次排列。LinearLayout分为水平(horizontal)和垂直(vertical)两种方向,水平方向的LinearLayout中子控件从左到右排列,垂直方向的LinearLayout中子控件从上到下排列。LinearLayout的重要属性如下:

  • orientation:方向属性,可设为horizontal或vertical。
  • layout_weight:宽度或高度比重,当布局中的子控件没有设置具体的宽度或高度时,通过layout_weight属性可以实现布局中子控件的宽度或高度按照一定比例分配。
  • gravity:子控件对齐方式,可设为left、top、center等。

LinearLayout布局示例

下面通过两个网页布局的示例来进一步讲解LinearLayout布局。

示例一:水平布局

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:background="#F5F5F5"
    android:padding="12dp">

    <ImageView
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:src="@drawable/avatar"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_marginLeft="10dp">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="John Smith"
            android:textSize="16sp"
            android:textColor="#333"
            android:maxLines="1"
            android:ellipsize="end"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Software Engineer"
            android:textSize="14sp"
            android:textColor="#999"
            android:maxLines="1"
            android:ellipsize="end"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="ABC Company"
            android:textSize="14sp"
            android:textColor="#999"
            android:maxLines="1"
            android:ellipsize="end"/>
    </LinearLayout>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Follow"
        android:textColor="@color/colorPrimary"
        android:background="@drawable/btn_follow"/>

</LinearLayout>

以上代码实现的效果是一个水平排列的个人信息卡片,包括头像、姓名、职位和公司信息,以及一个“Follow”按钮。其中,头像和姓名信息在左侧,按钮在右侧,中间则显示职位和公司信息。关于代码中使用的一些属性,比如:background、padding、textSize、maxLines等也是比较常用的属性,不再进行讲解。

示例二:垂直布局

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:scaleType="centerCrop"
        android:src="@drawable/pic1"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="12dp">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Article Title"
            android:textSize="18sp"
            android:textColor="#333"
            android:maxLines="2"
            android:ellipsize="end"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Article Summary"
            android:textSize="14sp"
            android:textColor="#999"
            android:layout_marginTop="10dp"/>
    </LinearLayout>

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="12dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Author:"
            android:textColor="#999"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="John Smith"
            android:textColor="#333"
            android:layout_marginLeft="6dp"/>

        <View
            android:layout_width="1dp"
            android:layout_height="12dp"
            android:background="#CCC"
            android:layout_marginLeft="6dp"
            android:layout_marginRight="6dp"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Date:"
            android:textColor="#999"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="2020/01/01"
            android:textColor="#333"
            android:layout_marginLeft="6dp"/>
    </LinearLayout>

</LinearLayout>

以上代码实现的效果是一个垂直布局的文章列表项,包括文章的标题、摘要、作者、日期等信息。其中,图片、标题和摘要排列在上方,而作者和日期信息则在下方水平排列。在此布局中,我们还使用了View来实现虚线分割线的效果。在TextView中,我们通过使用maxLines和ellipsize属性来设置文字的最大行数和省略方式。

总结

通过以上两个布局示例,我们可以看到LinearLayout在控制子控件排列方向、对齐方式等方面非常灵活,也比较容易上手。在实际开发中,我们可以根据UI设计稿和具体的布局需求选择合适的LinearLayout布局方向和属性设置。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android布局控件之常用linearlayout布局 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • matlab中元胞数组(cell)转换为矩阵

    以下是“Matlab中元胞数组(cell)转换为矩阵的完整攻略”的详细讲解,过程中包含两个示例说明的标准Markdown格式文本: Matlab中元胞数组(cell)转换为矩阵的完整攻略 在Matlab中,元胞数组(cell)是一种常见的数据类型可以存储不同类型的数据。有时候,我们需要将元胞数组转换为矩阵进行进一步的计算和分析。本文介绍如何将元胞数组转换为矩…

    other 2023年5月10日
    00
  • PHP变量作用域(全局变量&局部变量)&global&static关键字用法实例分析

    PHP变量作用域(全局变量&局部变量)&global&static关键字用法实例分析 变量作用域 在PHP中,变量的作用域决定了变量在代码中的可见性和访问性。PHP中有两种主要的变量作用域:全局变量和局部变量。 全局变量 全局变量在整个脚本中都是可见和可访问的。它们可以在函数内部和外部使用。 示例1: $globalVar = 10;…

    other 2023年8月9日
    00
  • Access窗体怎么创建组合框及列表框控件?

    创建Access窗体时,可以通过添加组合框和列表框控件来提供更好的用户体验。下面是创建这些控件的完整攻略。 创建组合框控件 在Access窗体设计器中,选择“设计”视图。 从工具箱中选择“组合框”控件并将其拖到你的窗体中。 右击组合框控件,选择“属性”窗口。 在“数据”选项卡中,选择你想要提供选项的表或查询。 在“格式”选项卡中,选择你想要显示的字段。 指定…

    other 2023年6月27日
    00
  • Spring AOP 创建代理对象详情

    以下是使用标准的Markdown格式文本,详细讲解Spring AOP创建代理对象的完整攻略: Spring AOP 创建代理对象 1. 定义目标类和目标方法 首先,需要定义一个目标类,该类包含需要被代理的方法。 示例代码: public class UserService { public void addUser(String username) { /…

    other 2023年10月15日
    00
  • ios的几款抓包工具

    iOS的几款抓包工具 在移动应用的开发过程中,调试是一个很重要的环节。因此,iOS开发者需要一些好用的抓包工具来捕获和分析app的网络数据。下面介绍几款常用的iOS抓包工具。 1. Charles Charles是一款功能强大、易于使用的抓包工具。它可以截获iOS设备上的HTTP和HTTPS流量,并将数据显示在用户界面上,让开发者能够更好地理解应用程序的行为…

    其他 2023年3月29日
    00
  • vue去除所有空格

    以下是关于“Vue去除所有空格”的完整攻略: 方法1:使用JavaScript的replace()方法 可以使用JavaScript的replace()方法来去除字符串中的所有空格。在Vue中,可以在模板中使用JavaScript表达式来调用该方法。 以下是示例代码: <template> <div> <p>{{ mess…

    other 2023年5月7日
    00
  • C++11中模板隐式实例化与显式实例化的定义详解分析

    C++11中模板隐式实例化与显式实例化的定义详解分析 前言 在 C++ 中,模板是一种通用的代码方案,可以根据不同的数据类型生成对应的代码。模板主要被用于容器类,例如 vector、set 和 map 等STL中的模板类。C++11中引入了模板的新特性,即模板隐式实例化和显式实例化。 模板隐式实例化 模板隐式实例化是指在使用模板时自动生成模板代码的过程。代码…

    other 2023年6月26日
    00
  • sql server 2005中使用with实现递归的方法

    利用WITH和递归公用表达式(Common Table Expressions, CTE),可以在SQL Server 2005中使用递归查询。递归查询是一种常见的数据查询方式,在处理层级结构或树状数据时,非常有用。下面是实现递归查询的详细步骤: 创建递归公用表达式,并定义初始查询语句。 以查询公司组织架构为例,假设公司存在一个员工表格,表格结构如下: CR…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部