首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android线性/相对布局 - 如何在中间"自动调整大小"对象(3个对象)

在Android开发中,相对布局(RelativeLayout)和线性布局(LinearLayout)是常见的布局方式。要在中间"自动调整大小"的对象(例如3个对象),可以使用以下方法:

  1. 使用相对布局(RelativeLayout):

在相对布局中,可以使用android:layout_centerInParent属性将对象放置在父布局的中心,并使用android:layout_toLeftOfandroid:layout_toRightOf属性将对象放置在中心对象的左侧和右侧。

示例代码:

代码语言:xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
复制
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <View
        android:id="@+id/center_view"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_centerInParent="true"
        android:background="@color/colorPrimary" />

    <View
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_toLeftOf="@id/center_view"
        android:background="@color/colorAccent" />

    <View
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_toRightOf="@id/center_view"
        android:background="@color/colorPrimaryDark" />

</RelativeLayout>
  1. 使用线性布局(LinearLayout):

在线性布局中,可以使用android:layout_weight属性将对象放置在中心,并使用android:layout_gravity属性将对象放置在中心对象的左侧和右侧。

示例代码:

代码语言:xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
复制
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    tools:context=".MainActivity">

    <View
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_weight="1"
        android:background="@color/colorAccent" />

    <View
        android:id="@+id/center_view"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_gravity="center"
        android:background="@color/colorPrimary" />

    <View
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_weight="1"
        android:background="@color/colorPrimaryDark" />

</LinearLayout>

这两种方法都可以实现在中间"自动调整大小"的对象(3个对象)。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

2014-10-25Android学习------布局处理(-)

" 的属性是指控件中文本的格式,gravity是指文本的对齐方式等等,而其中文本的格式又受制约于它的控件在父控件中的属性. 2)线性布局的方向设置:android:orientation="";...这里代表LinearLayout线性布局放在窗体的中间位置 注意有一点:android:layout_gravity 和 android:gravity 的区别 从名字上可以看到,android:gravity...设置控件背景 可以是一个颜色也可以是一个图片 2.线性布局下面放置三个button控件 首先我们要知道LinearLayout线性布局有这样的特点: LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列...LinearLayout保持其所包含的 widget或者是container之间的间隔以及互相对齐(相对一个控件的右对齐、中间对齐或者左对齐)。...线性布局

1.4K40

iOS开源界面布局库终于破3000star

然后又因为懂一点点android相关的编程,了解到android中有四大布局体系,而其中用的最多的就是线性布局。于是想既然如此那我为什么不自己写一个类似android线性布局呢?...因此在xib上如果用MyLineView来进行布局则可能实际上显示的内容 和真实的内容是不一致的。而且线性布局会因为子视图的大小和边距而调整自己的尺寸。...因此线性布局比较适合通过代码的方式来 构造视图。同时适合于将线性布局作为scrollview的子视图来布局。因为线性布局在位置调整后会 如果是使用自动布局则这个类将无效。...而且不是调整自己的大小了 //也就是当垂直方向则所有子视图按顺序排列在中间。...布局库最开始只有一个线性布局,后来就分别添加了相对布局、框架布局、表格布局、浮动布局、流式布局、路径布局、栅格布局等八种布局

1.8K40

Flutter | 布局组件

,渲染 UI 界面的对象,也就是说,对于布局类组件来说,其布局算法都是通过对应的 RenderObject 对象来实现的。...在 Flutter 中通过 Row 和 Column 来实现线性布局,类似于 Android 中的 LinearLayout 控件 Row 和 Column 都继承子 Flex,至于 Fiex 暂不多说...Flow 主要用于以下需要高度自定义布局或者性能要求较高(动画中) 的场景, Flow 有如下优点 性能好:Flow 是一个队子组件尺寸以及位置调整非常高效的控件。...,所以在 getSize 中返回一个固定大小来指定 Flow 的大小 层叠布局 Stack,Positioned 层叠布局Android 中的 FrameLayout 布局是相似的,子组件可以通过父容器的四个角的位置来确定自身的位置...,个人感觉有点类似于 Android 线性布局中的 layout_weight 属性,子组件通过 flex 表示当前组件需要占总大小的多少。

2.7K30

Android布局详解

Android基本布局分别是:线性布局LinearLayout、相对布局RelativeLayout、帧布局FrameLayout、表格布局TableLayout、网格布局GridLayout。...其中,表格布局线性布局的子类。网格布局android 4.0后新增的布局。...普通视图还是布局都继承自 View ,其中 ViewGroup 就是所有布局的父类, ViewGroup 继承自 View 同时可以对 View 进行管理 ( 编排,控制 View 显示位置和大小 )主要掌握以下三种布局...\right 如果是水平 ( 宽如果不定 ) 可以调整孩子在 top\centervertical\bottom RelativeLayout 相对布局 第一种:子视图相对于父容器,取值为 true...子视图之间相互参考,值对方视图的 id –> @id/xxx id 的声明: @+id/id 名称 : @+id/tv_a id 的引用: @id/id 名称 : @id/tv_a android:

1.5K20

安卓第四夜 概念漫游(下)

多个View对象可以归属于一个ViewGroup对象,而ViewGroup对象往往定义了下属视图元素的布局关系,比如自上而下线性排列,或者格点式排列。...视图树 在安卓设计中,我们往往要给View元素增加各种属性,以控制它们的文字、尺寸、大小、颜色等信息。对于ViewGroup来说,它有多个子类,代表了不同的布局方式。...比较常见的有线性布局LinearLayout和相对布局RelativeLayout。线性布局是沿着一个方向线性排列视图元素,而相对布局则定义了视图元素和母View对象或兄弟View对象相对位置关系。...通过嵌套使用多种布局,我们可以创造出复杂的界面布局方式。 ? 在一个Activity中,我们可以通过新建View对象的方式,用编程的手段来创建视图树。视图元素的属性可以通过View对象的方法来调整。...="wrap_content" android:text="Hello, I am a Button" /> 它表示了一个线性布局,包含了一个文字视图和一个按钮

1K100

Android中Fragment的分屏显示处理横竖屏显示的实现方法

"帧布局", "相对布局" }; // 详细内容 public static final String[] DETAIL = { "线性布局是将放入其中的组件按照垂直或水平方向来布局...+ "并且Android线性布局不会换行,当组件一个挨着一个排列到窗体的边缘后,剩下的组件将不会被显示出来。"...在表格布局中,列可以被隐藏," + "也可以被设置为伸展的,从而填充可利用的屏幕空间,也可以设置为强制收缩,直到表格匹配屏幕大小。"..., "在帧布局管理器中,每加入一个组件,都将创建一个空白的区域,通常称为一帧," + "这些帧都会根据gravity属性执行自动对齐。..., "相对布局是指按照组件之间的相对位置来进行布局某个组件在另一个组件的左边、右边、上面或下面等。"

3K71

常用Android布局文件优化技巧总结

布局文件中,可以定义各种视图元素, TextView、Button、ImageView 等。每个视图元素都可以设置一些属性,宽度、高度、边距、背景颜色等。...这些属性可以用来控制视图元素在布局中的位置和大小布局文件的解析过程 当应用程序启动时,Android 系统会将布局文件解析成一个视图层次结构,然后将其加载到内存中。...逐行解析 XML 文件,创建相应的视图对象,并设置视图对象的属性。 将所有视图对象组织成一个视图层次结构。 在解析布局文件时,Android 系统会使用反射机制来动态地创建视图对象。...,需要注意与父布局的属性冲突,需要根据实际情况进行调整和适配。...以前的布局文件一般使用 LinearLayout、RelativeLayout、FrameLayout 等视图容器,但这些容器布局比较麻烦,对布局约束的描述不太直观,且相对复杂。

19920

Android编程权威指南笔记

布局定义了一系列用户界面对象以及它们显示在屏幕上的位置。组成布局的定义保存在xml文件中。每个定义用来创建屏幕上的一个对象,如按钮或文本信息。 组件是用户界面的构造模块。...组件属性: android:layout_width和android:layout_height属性 match_parent:视图与其父视图大小相同。...wrap_content:视图将根据其展示的内容自动调整大小android:orientation属性 android:orientation属性,它决定子组件的水平放置还是垂直放置。...android:text属性值不是字符串值,而是字符串资源的引用。 布局是一种资源。资源是应用非代码形式的内容。 MVC设计模式:应用对象按模型,控制器和视图的类别分为三部分。...android应用基于模型-控制器-视图。 模型对象存储着应用的数据和业务逻辑。视图对象知道如何在屏幕上绘制自己以及如何响应用户的输入。控制对象含有的逻辑单元,是视图与模型对象的联系纽带。

1K20

Android精通:TableLayout布局,GridLayout网格布局,FrameLayout帧布局,AbsoluteLayout绝对布局,RelativeLayout相对布局

标题图 在Android中提供了几个常用布局: LinearLayout线性布局 RelativeLayout相对布局 FrameLayout帧布局 AbsoluteLayout绝对布局 TableLayout...,TableLayout是由许多TableRow对象组成的,表格布局以行列的形式管理子控件,每一个单元是一个TableRow或者View对象。...四大控制属性.png 由于绝对布局不常见,不常用,因为在不同大小的适配屏幕上的位置直观上会变化,适应能力差,所以不建议使用。...为在父类的水平垂直居中 结论 线性布局: 指子控件以水平或垂直方式排列。...绝对布局: 指子控件通过绝对定位x,y位置来决定其位置摆放。 表格布局: 指以行列的形式放置子控件,每一行是一个TableRow对象或者View对象

3.7K20

android应用程序开发第三版_安卓app开发

布局定义了一系列用户界面对象以及它们显示在屏幕上的位置。组成布局的定义保存在XML文件中。 每个定义用来创建屏幕上的一个对象,如按钮或文本信息。...包名遵循“DNS反转”约定 1.2用户界面设计 1.2.1相对布局 activity_quiz.xml放在res/layout下面 代码接上图 效果如下 1.2.2线性布局 1.3创建字符串资源...R.java文件在Android项目编译过程中自动生成,遵照该文件头部的警示,请不要尝试修改该文件的内容,代码清单1-5所示。...在activity_quiz.xml文件中,分别为两个按钮添加上android:id属性,代码清单1-6所示。...1.5从布局XML到视图对象 1.5.1引用组件 1.5.2设置监听器 代码接上 1.5.3 创建提示消息 1.6 Android编译过程 第二章 Android与MVC设计模式 第三章

53020

六大布局之非常用布局

因为使用这种布局不但需要精确计算每个组件的大小,增大运算量,而且当应用程序在不同屏幕尺寸的手机上运行时会产生不同效果。...android:rowCount为可以设置行数,要多少行设置多少行,android:rowCount="2"为设置网格布局有2行。...网格布局在实际应用中很少使用,一般都是通过系统提供的另个一个列表控件 RecyclerView。 结论 线性布局: 指子控件以水平或垂直方式排列。...相对布局: 指子控件以控件之间的相对位置或子控件相对于父容器的位置排列。 帧布局: 指所有子控件均放在左上角且后面元素直接覆盖在前面元素之上。...绝对布局: 指子控件通过绝对定位x,y位置来决定其位置摆放。 表格布局: 指以行列的形式放置子控件,每一行是一个TableRow对象或者View对象

1.6K10

android布局文件详解

xml文件保存在项目的res/layout文件夹下面,系统会自动完成编译。...ID 每一个View对象都有一个与之关联的int类型的id,作为区别其他对象的根据,当应用被编译完成的时候,id会作为一个int类型的数值,但是在xml布局文件中它是android:id的值,作为一个字符串类型存在...Button myButton = (Button) findViewById(R.id.my_button); 注意:在相对布局中使用id来区别对象是十分重要的,元素之间确定相对的位置都是用id来引用的...需要注意的是:每一个LayoutParams的子类都有它自己的设定值的语法,每一个子类使用这些布局参数都应该语气父类相匹配(例如,线性布局中就没有每个元素之间的相对位置)。...一般来说,使用绝对的像素值类确定view的大小是不被推荐的。你应该使用一些相对的数字来替代,例如dp或者wrap_content ,fill_parent。这将帮助你的应用能够适用于不同大小的设备。

1.4K10

android布局属性具体解释

RelativeLayout用到的一些重要的属性: 1:LinearLayout ( 线性布局 ) (里面仅仅能够有一个控件,而且不能设计这个控件的位置,控件会放到左上角) 线性布局分为水平线性和垂直线性二者的属性分别为...2: RelativeLayout ( 相对布局 ) : (里面能够放多个控件,可是一行仅仅能放一个控件) 第一类 : 属性值为 true 或 false android:layout_centerHorizontal...水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素全然居中 android:layout_alignParentBottom...第三类:属性值为详细的像素值, 30dip , 40px android:layout_marginBottom 离某元素底边缘的距离 android:layout_marginLeft 离某元素左边缘的距离...4:AbsoluteLayout ( 绝对布局 ) : (里面能够放多个控件,而且能够自定义控件的x,y的位置) 5:FrameLayout ( 帧布局 ) :(里面能够放多个控件,只是控件的位置都是相对位置

83020

Android应用程序开发「建议收藏」

布局定义了一系列用户界面对象以及它们显示在屏幕上的位置。组成布局的定义保存在XML文件中。 每个定义用来创建屏幕上的一个对象,如按钮或文本信息。...包名遵循“DNS反转”约定 1.2用户界面设计 1.2.1相对布局 activity_quiz.xml放在res/layout下面 代码接上图 效果如下 1.2.2线性布局 1.3创建字符串资源...R.java文件在Android项目编译过程中自动生成,遵照该文件头部的警示,请不要尝试修改该文件的内容,代码清单1-5所示。...在activity_quiz.xml文件中,分别为两个按钮添加上android:id属性,代码清单1-6所示。...1.5从布局XML到视图对象 1.5.1引用组件 1.5.2设置监听器 代码接上 1.5.3 创建提示消息 1.6 Android编译过程 第二章 Android与MVC设计模式 第三章

60330

技术分享 | 想做App测试就一定要了解的App结构

Activity 是存放 View 对象的容器,也是界面的载体,可以用来展示一个界面。 WINDOW Window 是 Android 中的窗口,表示顶级窗口,也就是主窗口。...它提供标准的用户界面策略,背景、标题、区域、默认按键处理等。 VIEW View 就是一个个视图的对象。...元素属性 布局 了解 app 的界面布局,做自动化测试的时候更容易去定位页面上的元素。 这里的布局就是指界面元素排布的方式。...界面上的布局方式都有以下这些方式: 线性布局(LinearLayout):所有子视图在单个方向(垂直或水平)保持对齐 相对布局(RelativeLayout):每个视图的位置可以指定为相对于同级元素的位置...例如在另一个视图的左侧或下方,或相对于父级区域的位置,例如在底部、左侧或中心对齐 帧布局(FrameLayout):坐标原点是屏幕的左上角,位置固定,只需为控件指定大小即可,用来显示一个单一的视图 绝对布局

34030

技术分享 | 想做App测试就一定要了解的App结构

它提供标准的用户界面策略,背景、标题、区域、默认按键处理等。 VIEW View 就是一个个视图的对象。...元素属性 布局 了解 app 的界面布局,做自动化测试的时候更容易去定位页面上的元素。 这里的布局就是指界面元素排布的方式。...界面上的布局方式都有以下这些方式: 线性布局(LinearLayout):所有子视图在单个方向(垂直或水平)保持对齐 相对布局(RelativeLayout):每个视图的位置可以指定为相对于同级元素的位置...例如在另一个视图的左侧或下方,或相对于父级区域的位置,例如在底部、左侧或中心对齐 帧布局(FrameLayout):坐标原点是屏幕的左上角,位置固定,只需为控件指定大小即可,用来显示一个单一的视图 绝对布局...这几个属性在后面做自动化的时候,可以用来定位元素。

32820

Android系统五大布局详解Layout

在xml中为创建组件时,需要为组件指定id,android:id=”@+id/名字”系统会自动在gen目录下创建相应的R资源类变量。...()来获得在布局文件中创建的相应id的控件了,Button等。...(绝对布局)、TablelLayout(表格布局)、RelativeLayout(相对布局)。...这些布局都可以嵌套使用。 (1)LinearLayout 线性布局 线性布局是按照水平或垂直的顺序将子元素(可以是控件或布局)依次按照顺序排列,每一个元素都位于前面一个元素之后。...实际应用中,这种布局用的比较少,因为Android终端一般机型比较多,各自的屏幕大小。分辨率等可能都不一样,如果用绝对布局,可能导致在有的终端上显示不全等。

2.2K10
领券