,,详解Android ConstraintLayout 约束布局的用法

,,详解Android ConstraintLayout 约束布局的用法

本文主要详细介绍Android ConstraintLayout约束布局的使用方法。边肖认为这很好。现在分享给大家,给大家一个参考。来和边肖一起看看吧。

前言

在2016年的Google I/O大会上,Google发布了Android Studio 2.2的预览版,也发布了Android的新布局方案ConstraintLayout,但最近一年并没有大规模使用。2017年,谷歌发布了Android Studio 2.3正式版,Android Studio 2.3中新模块的默认布局是ConstraintLayout。如下所示:

?xml版本='1.0 '编码='utf-8 '?

Android . support . constraint . constraint layout

xmlns:Android=' http://schemas . Android . com/apk/RES/Android '

xmlns:app=' http://schemas . Android . com/apk/RES-auto '

xmlns:tools=' http://schemas . Android . com/tools '

Android:layout _ width=' match _ parent '

Android:layout _ height=' match _ parent '

工具:context=' com . constraint layout . app . main 2 activity '

/Android . support . constraint . constraint layout

要使用ConstraintLayout的布局方案,需要在build.gradle中引入支持库:

依赖关系{

编译“com . Android . support . constraint:constraint-layout:1 . 0 . 1”

}

在传统的Android开发中,接口基本上是通过编写XML代码来完成的。Android Studio虽然也支持可视化方式写界面,但是操作起来不方便,我也从来不推荐可视化方式写Android应用的界面。

而ConstraintLayout就是为了解决这种情况。与传统的接口编写方式相反,ConstraintLayout非常适合用可视化的方式编写接口,但不适合用XML编写接口。当然,可视化操作的背后还是使用了XML代码,只是这些代码是Android Studio根据我们的操作自动生成的。

此外,ConstraintLayout还有一个优点,可以有效解决嵌套布局过多的问题。我们平时写界面的时候,复杂的布局总是伴随着多层嵌套,嵌套越多,程序的性能越差。ConstraintLayout使用约束来指定每个控件的位置和关系。它有点类似于RelativeLayout,但远比RelativeLayout强大。

ConstraintLayout向后兼容API 9

关于ConstraintLayout的基本用法,请参考郭申的博客:https://www.jb51.net/article/126440.htm。

本文将讨论其他一些特性。

常用方法总结

Layout_constraintTop_toTopOf //将所需视图的顶部与另一个视图的顶部对齐。

layout _ constraint top _ tobottom of//将所需视图的顶部与另一个视图的底部对齐。

layout _ constraint bottom _ totopof//将所需视图的底部与另一个视图的顶部对齐。

layout _ constraint bottom _ tobottom of//将所需视图的底部与另一个视图的底部对齐。

layout _ constraint left _ totopof//将所需视图的左侧与另一个视图的顶部对齐。

layout _ constraint left _ tobottom of//将所需视图的左侧与另一个视图的底部对齐。

layout _ constraint left _ toleftof//将所需视图的左侧与另一个视图的左侧对齐。

layout _ constraint left _ to right of//将所需视图的左侧与另一个视图的右侧对齐。

layout _ constraint right _ totopof//将所需视图的右侧与另一个视图的顶部对齐。

layout _ constraint right _ to bottom of//将所需视图的右侧与另一个视图的底部对齐。

layout _ constraint right _ toleftof//将所需视图的右侧与另一个视图的左侧对齐。

layout _ constraint right _ to right of//将所需视图的右侧与另一个视图的右侧对齐。

constraintDimensionRatio

该属性是将视图的大小设置为特定的长宽比,比如将图片的长宽比设置为1: 1、4: 3、16: 9等。使用ConstraintLayout,您可以简单地使用layout _ constraintdimensionratio属性。

?xml版本='1.0 '编码='utf-8 '?

安卓。支持。约束。约束布局xmlns:Android=' http://模式。安卓。' com/apk/RES/Android '

xmlns:app=' http://模式。安卓。' com/apk/RES-auto '

xmlns:tools=' http://模式。安卓。' com/tools '

Android:layout _ width=' match _ parent '

Android:layout _ height=' match _ parent '

Android:id=' @ id/constraint layout '

工具:context=' com。约束布局。app。'主要活动'

图像视图

android:id='@ id/cat_image '

android:layout_width='0dp '

Android:layout _ height=' wrap _ content '

app:layout _ constraint left _ toLeftOf=' parent '

app:layout _ constraint top _ toTopOf=' parent '

app:layout _ constraintDimensionRatio=' 4:3 '

app:layout _ constraint right _ to right of=' parent '

app:layout _ constraint horizontal _ bias=' 0 '

android:src='@mipmap/cat '

/

图像视图

android:layout_width='0dp '

Android:layout _ height=' wrap _ content '

Android:src=' @ MIP map/IC _ launcher '

app:layout _ constraintDimensionRatio=' 4:3 '

app:layout _ constraint bottom _ to bottom of=' parent '

app:layout _ constraint left _ toLeftOf=' parent '

app:layout _ constraint top _ toBottomOf=' @ id/cat _ image '

app:layout _ constraint vertical _ bias=' 0.0 '

app:layout _ constraint right _ to right of=' parent '/

/安卓。支持。约束。约束布局

效果图如下:

偏移比例

当我们的布局文件是下面这样的时候:

?可扩展标记语言版本='1.0 '编码='utf-8 '?

安卓。支持。约束。约束布局xmlns:Android=' http://模式。安卓。' com/apk/RES/Android '

xmlns:app=' http://模式。安卓。' com/apk/RES-auto '

xmlns:tools=' http://模式。安卓。' com/tools '

Android:layout _ width=' match _ parent '

Android:layout _ height=' match _ parent '

Android:id=' @ id/constraint layout '

工具:context=' com。约束布局。app。'主要活动'

纽扣

android:id='@ id/button3 '

Android:layout _ width=' wrap _ content '

Android:layout _ height=' wrap _ content '

android:text='Button '

app:layout _ constraint bottom _ to bottom of=' parent '

app:layout _ constraint right _ to right of=' parent '

app:layout _ constraint left _ toLeftOf=' parent '

app:layout _ constraint top _ toTopOf=' parent '

/

/安卓。支持。约束。约束布局

我们得到的布局效果如下:

那么我们有个疑问,为什么纽扣是居中显示的?因为在上面的布局中有两个重要的属性没有写出来,但是却有默认的属性值,那就是水平、垂直的偏移比例。

layout _ constraint horizontal _ bias//控件的水平偏移比例

layout _ constraint vertical _ bias//控件的垂直偏移比例

如果在布局文件中没有明确的写出偏移比例,那么系统默认偏移比例值为:0.5 。

到这里我们已经清楚了,上面的布局文件就相当于:

?可扩展标记语言版本='1.0 '编码='utf-8 '?

安卓。支持。约束。约束布局xmlns:Android=' http://模式。安卓。' com/apk/RES/Android '

xmlns:app=' http://模式。安卓。' com/apk/RES-auto '

xmlns:tools=' http://模式。安卓。' com/tools '

Android:layout _ width=' match _ parent '

Android:layout _ height=' match _ parent '

Android:id=' @ id/constraint layout '

工具:context=' com。约束布局。app。'主要活动'

纽扣

android:id='@ id/button3 '

Android:layout _ width=' wrap _ content '

Android:layout _ height=' wrap _ content '

android:text='Button '

app:layout _ constraint bottom _ to bottom of=' parent '

app:layout _ constraint right _ to right of=' parent '

app:layout _ constraint left _ toLeftOf=' parent '

app:layout _ constraint top _ toTopOf=' parent '

app:layout _ constraint horizontal _ bias=' 0.5 '

app:layout _ constraint vertical _ bias=' 0.5 '

/

/安卓。支持。约束。约束布局

我们可以试试,更改纽扣的偏移值试试看,比如,水平偏移0.3 , 垂直偏移0.7 , 看看效果:

可以看到很明显,按钮在水平方向向右偏移比例为30% , 在垂直方向向下偏移比例为70% 。

基线约束控键

该控键帮助你对齐任意两个小部件的文字部分,与小部件的大小无关。例如你有两个不同尺寸的小部件但是你想要他们的文字部分对齐。

布局_约束基线_toBaselineOf

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • windowsandroid手机版下载,windowsandroid安装apk
  • windowsandroid手机版下载,windowsandroid安装apk,WindowsAndroid 安装教程详解
  • android调用webview方法,androidwebview是什么,Android 中 WebView 的基本用法详解
  • android传感器高级编程,Android传感器,Android编程之光线传感器用法详解
  • android.app.Dialog,android自定义dialog对话框,Android开发笔记之-Dialog的使用详解
  • android 图片视频轮播框架,androidlayout轮播图,Android实现炫酷轮播图效果
  • android里的viewpager,安卓自定义view流程,Android自定义引导玩转ViewPager的方法详解
  • android里的viewpager,android viewpager详解
  • android里的viewpager,android viewpager详解,Android自定义超级炫酷的ViewPage指示器
  • android调用webview方法,androidwebview是什么
  • android设置控件宽度,android获取屏幕宽度和高度
  • android设置控件宽度,android获取屏幕宽度和高度,Android中获取控件宽高的4种方法集合
  • android蓝牙开发的基本流程,安卓蓝牙app开发教程
  • android蓝牙开发的基本流程,安卓蓝牙app开发教程,android蓝牙简单开发示例教程
  • android菜单栏,android菜单控件
  • 留言与评论(共有 条评论)
       
    验证码: