• Android Studio 的六种基本布局


    Android Studio 提供的六种基本布局是构建 Android 应用界面的基础,每种布局都有其特定的用途和特点,下面是这些布局的详细介绍:

    1. 帧布局(FrameLayout)

    这是一种简单的布局容器,通常用于堆叠视图。在帧布局中,子视图可以放置在任意位置,因为它们都是以左上角为原点进行定位。这种布局常用于浮动按钮或者当需要将一个视图覆盖在另一个视图之上时。

    帧布局的主要特点如下:

    重叠视图:由于子视图是按照它们添加的顺序堆叠的,因此后添加的视图会出现在前面,并可能覆盖先前的视图。这使得帧布局非常适合于创建浮动动作按钮、全屏对话框和其他类型的覆盖层。

    布局参数:帧布局允许设置子视图的外边距(margin),这可以用来调整子视图在帧布局中的位置。

    限制使用:虽然帧布局在某些情况下非常有用,但由于其简单性,它不适合用于创建复杂的界面设计。过多的重叠可能会导致界面混乱,不易于用户操作和理解。

    布局效率:由于帧布局的简单性,它通常在性能上比其他更复杂的布局(如LinearLayout或RelativeLayout)更加高效。在XML布局文件中使用帧布局时,只需要将``标签包含在内,并在其中声明子视图。

    例如:

    1. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    2.     android:layout_width="match_parent"
    3.     android:layout_height="match_parent">
    4.     <Button android:id="@+id/button1"
    5.         android:layout_width="wrap_content"
    6.         android:layout_height="wrap_content"
    7.         android:text="Button 1" />
    8.     <Button android:id="@+id/button2"
    9.         android:layout_width="wrap_content"
    10.         android:layout_height="wrap_content"
    11.         android:text="Button 2"
    12.         android:layout_gravity="top|end"/>
    13. FrameLayout>

    在这个例子中,两个按钮被放置在同一个帧布局里。由于第二个按钮设置了`android:layout_gravity="top|end"`,它会出现在第一个按钮的上方和右侧。如果第二个按钮没有设置外边距,它将会完全覆盖第一个按钮。

    总的来说,帧布局是一个简单的工具,用于创建视图的重叠和层叠效果,但应当谨慎使用,以避免不必要的界面复杂性和用户体验问题。在需要更多布局控制和复杂界面设计时,可以考虑使用其他更复杂的布局容器。

    2. 线性布局(LinearLayout)

    线性布局是一种线性排列子视图的容器,支持垂直(vertical)或水平(horizontal)两种排列方式。在垂直模式下,子视图会一个接一个地垂直排列;而在水平模式下,子视图则会并排排列。线性布局适合于创建列表和简单的表单。

    线性布局的主要特点包括:

    方向性:线性布局有两种主要的排列方式。当方向设置为`vertical`(`android:orientation="vertical"`)时,子视图会一个接一个地垂直堆叠;当方向设置为`horizontal`(`android:orientation="horizontal"`)时,子视图则会并排水平排列。

    权重分配(Weight):线性布局允许为子视图分配`weight`属性,用于在同一行或同一列中动态分配空间。子视图的空间分配与其`weight`值成正比,即使子视图的内容发生变化,空间分配也会相应调整,这对于创建自适应布局非常有用。

  • 相关阅读:
    基于 MybatisPlus 逻辑删除开启情况下兼容多数据库实现批量插入更新通用流程实现
    页面静态化、Freemarker入门
    Kubernetes集群证书过期解决方案:使用kubeadm为证书续期
    C++ 中的虚函数和多态性
    Python爬虫程序设置代理常见错误代码及解决方法
    RE:从 0 开始的幼儿园数论生活
    Pytorch——实现Tensor矩阵的任意角度旋转、平移操作
    基于PHP+MySQL的茶叶销售购物网店
    opengl 选择对象,正投影,透视投影 显示3d坐标 pyqt
    Python3.12 新特性——GIL大突破!
  • 原文地址:https://blog.csdn.net/weixin_63378697/article/details/136183153