原创 Android studio之布局管理器之间的相互嵌套

2021-4-9 13:40 2435 19 2 分类: 软件与OS 文集: android studio

在使用布局管理器进行布局时会发现,有时候实际的需求不是一种布局管理器能够满足的,这时我们可以将多个布局管理器嵌套使用。用法和单个布局管理器的使用并无多大区别,这里就以LinearLayoutGridLayoutRelativeLayout 三者的互相嵌套为例,实现一个带标题的计算器的布局。其他嵌套情况可根据实例随意变换,此处不做过多叙述。

xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent">
    //在相对布局内嵌入一个线性布局
    <LinearLayout
        android:id="@+id/linearlayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="hello,这里是大鸟科创空间1"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="hello,这里是大鸟科创空间2"/>
    LinearLayout>
    //在相对布局内部嵌入一个网格布局,并将网格布局放在线性布局下方
    <GridLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/linearlayout"
        android:columnCount="4"
        android:rowCount="6"
        android:orientation="horizontal">

        <TextView
            android:layout_columnSpan="4"
            android:layout_marginLeft="6dp"
            android:layout_marginRight="6dp"
            android:text="0"
            android:textSize="60sp"/>
        <Button
            android:text="回退"
            android:layout_columnSpan="2"
            android:layout_gravity="fill" />
        <Button
            android:text="清空"
            android:layout_columnSpan="2"
            android:layout_gravity="fill" />
        <Button android:text="+"/>
        <Button android:text="1"/>
        <Button android:text="2"/>
        <Button android:text="3"/>
        <Button android:text="-"/>
        <Button android:text="4"/>
        <Button android:text="5"/>
        <Button android:text="6"/>
        <Button android:text="*"/>
        <Button android:text="7"/>
        <Button android:text="8"/>
        <Button android:text="9"/>
        <Button android:text="/"/>
        <Button android:text="."/>
        <Button android:text="0"/>
        <Button android:text="="/>
    GridLayout>
RelativeLayout>

本程序在相对布局嵌入了一个线性布局和一个网格布局,并将网格布局放在线性布局的下方,程序运行效果如下图所示:

这里在最外层使用一个 RelativeLayout,在 RelativeLayout 内部使用 LinearLayout GridLayout。其中LinearLayout 用来实现计算器的标题,即"hello 这里是大鸟空间1""hello 这里是大鸟空间2",在实际开发中,可以替换成自己需要的内容。GridLayout 其实就是计算器的布局。由于外层是 RelativeLayout,因此在确定位置时在 GridLayout 中使用了 layout_below 属性,使 GridLayout 落在LinearLayout下方。在Android 开发中,嵌套使用布局管理器很常见,这里只是给出一个示例,读者可模仿操作并尝试使用其他布局管理器进行互相嵌套。

作者: 大鸟科创空间, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3949041.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论0条评论)

登录后参与讨论
我要评论
0
19
关闭 站长推荐上一条 /2 下一条