android 继承relativelayout,Android开发中RelativeLayout相对布局

article/2025/9/26 5:39:30

Android开发中RelativeLayout相对布局

RelativeLayout布局是Android界面布局中应用最广也最强大的一种布局,其不只十分灵活,能够解决开发中各类界面布局需求,同时也很方便了解决了多屏幕尺寸的适配问题。在iOS开发中,Autolayout技术老是被赞不绝口,RelativeLayout布局就是Andriod系统中的Autolayout,其又被称为相对布局。java

所谓相对布局,是指其坐标的肯定并非开发者写死的,而是有系统自动计算出来的,那么系统如何计算每一个视图控件的位置呢?开发者须要为其添加一些规则进行约束,这些规则大体包括2类:ide

第1类 与父视图之间位置关系的规则:布局

此类规则包括在父视图中的居中、左对齐、右对齐、上对齐、下对齐等。this

第2类 平级视图之间相对位置关系的规则:spa

此类规则包括同级视图间对其关系,相对位置关系,例如A在B左侧20像素位置,B与C上边缘对齐等。code

使用RelativeLayout进行布局示例代码以下:xml

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

RelativeLayout relativeLayout = new RelativeLayout(this);

Button button1 = new Button(this);

button1.setText("按钮一");

button1.setId(R.id.button1);

RelativeLayout.LayoutParams layoutParams1 = new RelativeLayout.LayoutParams(200,200);

//添加约束 使其靠近父视图右上角

layoutParams1.addRule(RelativeLayout.ALIGN_PARENT_TOP);

layoutParams1.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);

button1.setLayoutParams(layoutParams1);

Button button2 = new Button(this);

button2.setText("按钮二");

button2.setId(R.id.button2);

RelativeLayout.LayoutParams layoutParams2 = new RelativeLayout.LayoutParams(200,200);

//添加约束 让其右侧靠近按钮一左侧 上侧靠近按钮一下侧

layoutParams2.addRule(RelativeLayout.BELOW,R.id.button1);

layoutParams2.addRule(RelativeLayout.LEFT_OF,R.id.button1);

button2.setLayoutParams(layoutParams2);

Button button3 = new Button(this);

button3.setText("按钮三");

button3.setId(R.id.button3);

RelativeLayout.LayoutParams layoutParams3 = new RelativeLayout.LayoutParams(200,200);

//添加约束 让其固定距离按钮二 下方100px 左侧边缘对其

layoutParams3.addRule(RelativeLayout.ALIGN_LEFT,R.id.button2);

layoutParams3.addRule(RelativeLayout.BELOW,R.id.button2);

layoutParams3.topMargin = 100;

button3.setLayoutParams(layoutParams3);

relativeLayout.addView(button1);

relativeLayout.addView(button2);

relativeLayout.addView(button3);

setContentView(relativeLayout);

}

小提示:使用代码建立的视图,能够经过xml文件配置id,以下:继承

效果以下图:utf-8

2724b2f39a234c589b659f3a.html

RelativeLayout布局中视图位置的配置主要使用其内部类LayoutParams,这个内部类LayoutParams是继承自MarginLayoutParams。其中经常使用方法和属性列举以下:开发

//设置左边距

public int leftMargin;

//设置上边距

public int topMargin;

//设置右边距

public int rightMargin;

//设置下边距

public int bottomMargin;

//添加一个规则 这个方法添加的规则不须要参照视图 例如靠近父视图边缘

public void addRule(int verb)

//添加一个规则 这个方法添加的规则须要一个参照视图 例如某两个平级视图间的位置关系 anchor参数为视图id

public void addRule(int verb, int anchor)

//移除一个布局规则

public void removeRule(int verb)

用于进行布局规则配置的参数以下:

/*=======须要使用addRule(int verb, int anchor)方法添加的约束规则==========*/

//将当前视图约束到某个视图左边

public static final int LEFT_OF

//将当前视图约束到某个视图右边

public static final int RIGHT_OF

//将当前视图约束到某个视图上边

public static final int ABOVE

//将当前视图约束到某个视图下边

public static final int BELOW

//将当前视图约束与某个视图基线对齐

public static final int ALIGN_BASELINE

//将当前视图约束与某个视图左侧对齐

public static final int ALIGN_LEFT

//将当前视图约束与某个视图上侧对齐

public static final int ALIGN_TOP

//将当前视图约束与某个视图右侧对齐

public static final int ALIGN_RIGHT

//将当前视图约束与某个视图下侧对齐

public static final int ALIGN_BOTTOM

//将当前视图约束与某个视图起始对齐

public static final int START_OF

//当当前视图约束与某个视图末尾对齐

public static final int END_OF

/*========须要使用addRule(int verb)方法添加的约束规则====================*/

//约束当前视图与父视图左侧对齐

public static final int ALIGN_PARENT_LEFT

//约束当前视图与父视图上侧对齐

public static final int ALIGN_PARENT_TOP

//约束当前视图与父视图上侧对齐

public static final int ALIGN_PARENT_RIGHT

//约束当前视图与父视图下侧对齐

public static final int ALIGN_PARENT_BOTTOM

//约束当前视图与父视图居中对齐

public static final int CENTER_IN_PARENT

//约束当前视图与父视图水平居中

public static final int CENTER_HORIZONTAL

//约束当前视图与父视图垂直居中

public static final int CENTER_VERTICAL

//约束当前视图与父视图起始对齐

public static final int ALIGN_PARENT_START

//约束当前视图与父视图末尾对齐

public static final int ALIGN_PARENT_END

专一技术,热爱生活,交流技术,也作朋友。

——珲少 QQ群:435043639


http://chatgpt.dhexx.cn/article/4DuybJbc.shtml

相关文章

RelativeLayout实现居中偏下x距离引发的小问题

UE想实现一个简单的效果,某个控件在屏幕水平线下方50dp。由于受限于项目历史布局(RelativeLayout)和一套动态化设置控件位置的方案,竟然遇到了一点问题。(在这里还是喊一声:ConstraintLayout最香&#xff0…

RelativeLayout布局

RelativeLayout布局是相对布局,如果RelativeLayout中再包含两个RelativeLayout,不会像LinearLayout一样,宽高一样的话会重叠在一起 将红色布局放到右上角 常见属性 根据父容器定位 layout_alignParentLeft 左对齐 layout_alignParentRig…

RelativeLayout圆角处理

RelativeLayout圆角处理以后,可以变相对子view进行圆角处理,如ImageView,VideoView等 RoundRelativeLayout具体实现 比较简单,只需要在初始化时设置一下layout的ViewOutlineProvider,方便起见,这里写死rad…

RelativeLayout(相对布局)的基本使用

RelativeLayout又称作相对布局,也是一种非常常用的布局。和LinearLayout的排列规则不同,RelativeLayout显得更加随意一些,它可以通过相对定位的方式让控件出现在布局的任何位置。也正因为如此,RelativeLayout中的属性非常多&#…

RelativeLayout相对布局详解

RelativeLayout相对布局在Android UI开发中也应用比较多,虽然它不及LinearLayout使用方便,但某些场景中使用RelativeLayout也是一种很不错的选择。在官网上介绍RelativeLayout是一个视图组,在相对位置显示子视图。RelativeLayout是用于设计用…

Android相对布局(RelativeLayout)

Android相对布局(RelativeLayout) 备注:这里的视图和元素是等同的概念。 RelativeLayout是一个允许子视图相对于其他兄弟视图或是父视图显示的视图组(通过ID指定)。每个视图的位置能够指定它相对于兄弟(比如在其他视图的左边或是下边)或是父视图(这里是指相对布局容…

【Android】相对布局(RelativeLayout)最全解析

【Android】相对布局(RelativeLayout)最全解析 一、相对布局(RelativeLayout)概述二、根据父容器定位三、根据兄弟控件定位 一、相对布局(RelativeLayout)概述 相对布局(RelativeLayout&#x…

Flutter ListView详解

ListView详解 ListView常用构造ListViewListView 默认构建效果 ListView ListTileListTile 属性ListTile 使用效果 ListView builderbuilder属性详细介绍分析几个比较难理解的属性效果builder模式来设置分割线 ListView separatedseparatorBuilderseparated设置分割线效果 List…

UE4 ListView

UE4-ListView UE4ListView和U3D的思路不太一样,详细了解之后发现UE4的ListView还是蛮先进的,直接就实现了逻辑和显示分离,提高效率,相对的,他的用法也比Unity的ListView绕一些。举例,一个ListView如果设置…

Android 控件 —— ListView

ListView 的简单用法 在布局中加入 ListView 控件还算简单&#xff0c;先为 ListView 指定一个 id&#xff0c;然后将宽度和高度都设置为 match_parent&#xff0c;这样 ListView 就占满了整个布局的空间 <LinearLayout xmlns:android"http://schemas.android.com/ap…

ListView 组件

简介&#xff1a; ListView是最常用的可滚动组件之一 有三种构建方式&#xff1a; ListViewListView.builderListView.separated 主要参数说明&#xff1a; scrollDirection: Axis.horizontal 水平列表Axis.vertical 垂直列表 padding: 内边距 resolve: 组件反向排序 childr…

4.ListView

ListView 文章目录 ListView一、什么是ListView二、ListView入门1.ListView核心类2.代码编写步骤 三、ListView优化四、把复杂界面(通过xml文件实现)显示到ListView上1.View的静态方法2.获取LayoutInflater对象 五、SimpleAdapter & ArrayAdapter的使用1.ArrayAdapter2.Sim…

ListView及ListAdapter详解

ListView及ListAdapter详解 一、AdapterView 1. 简介 An AdapterView is a view whose children are determined by an Adapter. 简单地说就是其子视图是由适配器决定的视图组件 2. 子类 ListViewGridViewSpinnerGallery3. 常用方法 //功能:获取list中指定位置item get…

qt listview

运行图 .h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>#include <QStringListModel> #include <QModelIndex>namespace Ui { class Widget; }class Widget : public QWidget {Q_OBJECTpublic:explicit Widget(QWidget *parent 0);~Widget();pri…

flutter 之 ListView的使用与详解 map for listview.builder 的使用

1.ListView 配合ListTile 实现新闻列表样式 ListView(children: <Widget>[ListTile(title: const Text(我是 title),subtitle: const Text(我是 sub_title),leading: Image.asset(images/c.png,fit: BoxFit.cover,),trailing: const Icon(Icons.chevron_right,size: 22,…

android ListView

android ListView几个比较特别的属性 由于这两天在做listView的东西&#xff0c;所以整理出来一些我个人认为比较特别的属性&#xff0c;通过设置这样的属性可以做出更加美观的列表 首先是stackFromBottom属性&#xff0c;这只该属性之后你做好的列表就会显示你列表的最下面&am…

ListView使用总结

ListView使用总结 虽然随着RecyclerView的不断普及&#xff0c;相应的资源也越来越多&#xff0c;许多的项目都在使用RecyclerView&#xff0c;但作为他的前辈ListView&#xff0c;加深对ListView的使用有助于我们更好的适应到RecyclerView的使用中。 首先看一下我们实现的效…

Android有关ListView嵌套ListView的一些问题

本人在做评论回复功能的时候&#xff0c;查阅到ListView结合Adapter适配器具有以列表的形式 展示具体数据内容&#xff0c;并且能够根据数据的长度自适应屏幕显示的功能&#xff0c;因此打算在ListView中嵌套ListView完成点击事件后弹出输入框再输入数据后在下方显示回复内容&a…

ListView详解0

ListView常用方法总结 1、listview拖动变黑解决方法 在Android中&#xff0c;ListView是最常用的一个控件&#xff0c;在做UI设计的时候&#xff0c;很多人希望能够改变一下它的背景&#xff0c;使他能够符合整体的UI设计&#xff0c;改变背景背很简单只需要准备一张图片然后指…

C# ListView 的用法

ListView 是一种多列的列表视图控件&#xff0c;可以用于展示多个数据项及其相关信息。ListView 控件提供了丰富的属性和事件&#xff0c;可以用于实现各种各样的表格视图&#xff0c;包括带有单元格编辑、排序和分组等功能。 下面我们通过几个示例来演示如何使用 ListView 控…