布局的学习
LinearLayout
线性布局
线性布局中的子容器或控件,按先后顺序水平或垂直的排列
主要属性
android:orientation
android:layout_weight
主要方法:
addView()
android:layout_weight
TableLayout
表格布局
继承自LinerLayout
控件垂直线性排列,默认宽度填充整行,高度适应内容
常与TableRow配合使用
主要属性
android:collapseColumns
android:stretchColumns
android:shrinkColumns
TableRow
继承自LinearLayout
控件水平线性排列,默认高度,宽度适应内容
相对布局RelativeLayout
相对布局的节点名称为RelativeLayout
相对布局是一种使用已有的控件为参考点,确定新的控件的位置的布局模式
使用相对布局时,其同级的控件允许设置如下属性:
1,layout_below/layout_above:位于某控件下面/上面,取值为参考点控件id;
2,layout_toLeftOf/layout_toRightOf:位于某控件左侧或右侧,取值为参考点控件id;
3,layout_alignLeft/layout_alignTop/layout_alignBottom/layout_alignRight:
与某控件的左侧/顶部/底部/右侧对齐,取值为参考点控件id;
4,layout_alignBaseline:与某控件的基线对齐,取值为参考点控件id;
5,layout_alignParentLeft/layout_alignParentTop/layout_alignParentRight/layout_alignParentBottom:
与父级的左侧/右侧/底部/对齐,取值为true或false;
6,layout_centerlnParent/layout_centerHorizontal/layout_centerVertical:
线性布局
线性布局中的子容器或控件,按先后顺序水平或垂直的排列
主要属性
android:orientation
android:layout_weight
主要方法:
addView()
android:layout_weight
TableLayout
表格布局
继承自LinerLayout
控件垂直线性排列,默认宽度填充整行,高度适应内容
常与TableRow配合使用
主要属性
android:collapseColumns
android:stretchColumns
android:shrinkColumns
TableRow
继承自LinearLayout
控件水平线性排列,默认高度,宽度适应内容
相对布局RelativeLayout
相对布局的节点名称为RelativeLayout
相对布局是一种使用已有的控件为参考点,确定新的控件的位置的布局模式
使用相对布局时,其同级的控件允许设置如下属性:
1,layout_below/layout_above:位于某控件下面/上面,取值为参考点控件id;
2,layout_toLeftOf/layout_toRightOf:位于某控件左侧或右侧,取值为参考点控件id;
3,layout_alignLeft/layout_alignTop/layout_alignBottom/layout_alignRight:
与某控件的左侧/顶部/底部/右侧对齐,取值为参考点控件id;
4,layout_alignBaseline:与某控件的基线对齐,取值为参考点控件id;
5,layout_alignParentLeft/layout_alignParentTop/layout_alignParentRight/layout_alignParentBottom:
与父级的左侧/右侧/底部/对齐,取值为true或false;
6,layout_centerlnParent/layout_centerHorizontal/layout_centerVertical:
在父级中居中/垂直居中,取值为true,false;
布局实现简单的计算机界面:
<GridLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:columnCount="4"
android:rowCount="6">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="3.1415926"
android:layout_columnSpan="4"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="*"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="/"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="DEL"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="AC"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="7"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="8"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="9"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="-"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="4"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="5"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="6"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+"
android:layout_rowSpan="2"
android:layout_gravity="fill_vertical"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="3"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="."/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="="
android:layout_columnSpan="2"
android:layout_gravity="fill_horizontal"/>
</GridLayout>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理