Android开发-java版:布局

布局

1.LinearLayout布局(线性布局)

修改根布局为LinearLayout布局

使用android:orientation指定线性方向

vertical代表垂直方向

horizontal代表水平方向

如果android:orientation的值为horizontal,则不能将内部控件宽度设置为match_parent(与父元素同宽),因为会遮挡水平方向上的其他控件

同样,如果android:orientation的值为vertical,则不能将内部控件高度设置为match_parent(与父元素同高),会遮挡垂直方向上的其他控件

android:layout_gravity是控件在布局中的对齐方式

布局中==> 上:top;下:bottom;左:start/left;右:end/right;

start和end是开始边和结束边的方向

++如果使用android:layoutDirection="ltr",则表示左到右==>left to right,开始边就是左边,结束边就是右边(写在父布局里)++

++如果使用android:layoutDirection="rtl",则表示右到左==>right to left,开始边就是右边,结束边就是左边(写在父布局里)++

那么在horizontal水平布局中,三个按钮上中下就是top、center、bottom

在vertical垂直布局中,三个按钮左中右就是start、center、end

我们将android:layout_width设置为0dp,同时给android:layout_weight设置一个值,如下,系统会将整个布局中同一方向上的layout_weight值相加,然后以当前控件的值占总值的大小为当前控件设置对应的大小。(比如这里是水平方向上相加,1/(1+1),于是各占一半)

也可以设置垂直方向,需要将layout_height设置为0dp

如果我们将按钮的layout_weight删除,同时将layout_width改回wrap_content,这表示,按钮按照内容所占大小自动调整,然后EditText控件会占满剩余空间。

2.RelativeLayout(相对布局)

1.控件相对于父布局定位

2.控件相对于控件定位

使用id指定相对控件的引用

layout_above指一个控件在相对控件的上方

layout_toLeftOf指一个控件的右边与相对控件的左边对齐

layout_alignLeft指一个控件的左边与相对控件的左边对齐

3.ConstraintLayout(约束布局)

在约束布局中,水平和垂直方向上必须至少有一个约束条件

app:layout_constraintHorizontal_bias表示在水平方向上的偏移量

app:layout_constraintVertical_bias表示在垂直方向上的偏移量

想要使用以上的偏移量,需要保证在各个方向上有两个约束,水平方向左右,垂直方向上下。

可以以一个控件的位置去约束另一个控件

4.Layout(自定义布局)

1.在layout里创建一个title.xml,随意写一个标题栏

2.然后在主活动中引入

3.隐藏自带标题栏

在.java文件中使用actionBar.hide()隐藏

4.运行即可看到自定义的标题栏

相关推荐
沐风听雨_A24 分钟前
雄迈IP摄像头配置笔记
笔记
我命由我123451 小时前
SVG - SVG 引入(SVG 概述、SVG 基本使用、SVG 使用 CSS、SVG 使用 JavaScript、SVG 实例实操)
开发语言·前端·javascript·css·学习·ecmascript·学习方法
00后程序员张2 小时前
python 抓包在实际项目中的合理位置,结合代理抓包、设备侧抓包与数据流分析
android·ios·小程序·https·uni-app·iphone·webview
沐风听雨_A2 小时前
有人串口转Wifi模块配置笔记
笔记
灵感菇_2 小时前
Android Service全面解析
android·service·四大组件
Fern_blog3 小时前
鸿蒙学习之路
学习
alexhilton3 小时前
Jetpack ViewModel内幕:内部机制与跨平台设计
android·kotlin·android jetpack
小智RE0-走在路上4 小时前
Python学习笔记(11) --数据可视化
笔记·python·学习
_李小白5 小时前
【Android FrameWork】延伸阅读: Android应用安装过程
android
么么...6 小时前
在 Ubuntu 上安装 Docker 并部署 MySQL 容器
linux·运维·经验分享·笔记·mysql·ubuntu·docker