ConstraintLayout:layout_constraintHorizontal_chainStyle

layout_constraintHorizontal_chainStyle是ConstraintLayout中的一个属性,用于定义水平链(horizontal chain)中各个视图之间的布局方式。在ConstraintLayout中,链是一组通过双向约束连接在一起的视图的集合,可以是水平的也可以是垂直的。layout_constraintHorizontal_chainStyle属性决定了如何分配链内视图之间的空间或者如何对齐这些视图。

具体使用场景

  1. 均匀分布:当你希望链中的视图均匀分布在可用空间时,比如在一个导航栏中均匀放置几个按钮。
  2. 紧密连接:当你希望所有视图紧密连接,例如一系列标签紧挨着显示,而不是分散开来。
  3. 权重分配:在需要根据视图的重要性给予不同的空间比例时,可以使用链的权重特性,通过layout_constraintHorizontal_chainStyle配合layout_constraintHorizontal_weight来实现。

ChainStyle 的种类

ConstraintLayout为链式布局提供了三种主要的风格:

  1. Spread(默认):视图会均匀地分布在链中,两端的视图靠近链的边界,剩余的空间均匀分配给链中的视图间隙。

  2. Spread Inside:与Spread类似,但是两端的视图不会靠近链的边界,而是只有内部的间隙被均匀分配。

  3. Packed:所有的视图都会聚集在一起,你可以通过layout_constraintHorizontal_bias(水平偏向)或layout_constraintVertical_bias(垂直偏向)来调整聚集的位置。

初衷

ConstraintLayout的设计初衷是为了提供一个灵活且强大的布局系统,使开发者能够以更简洁的方式创建复杂的布局,同时提高布局的性能。layout_constraintHorizontal_chainStyle属性及其相关的链式布局功能让开发者能够轻松地实现多种布局需求,无论是均匀分布的元素还是根据特定逻辑聚集在一起的视图,都可以通过简单的配置实现,而不需要嵌套多层布局或写大量的布局代码。

通过使用链式布局,开发者可以有效地控制视图之间的关系和对齐方式,无论是在水平方向上还是垂直方向上,都能实现精确的布局控制。这样不仅能提升应用的外观质量,还能保持布局的性能和灵活性。

数字按钮从0-9进行初始化,请使用最简单的方法进行初始化<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:orientation="horizontal" android:layout_height="100dp"> <TextView android:id="@+id/input" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:text="" android:textSize="30sp" /> <TextView android:id="@+id/result" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="195dp" android:layout_marginTop="50dp" android:text="" android:textSize="30sp" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:orientation="horizontal" android:layout_height="80dp"> <TextView android:id="@+id/C" android:onClick="oneOnClick" android:layout_width="0dp" android:layout_weight="1" android:layout_height="match_parent" android:gravity="center" android:textSize="30sp" android:text="C"/> <!-- android:background="@drawable/selector_gray1"--> <TextView android:id="@+id/zf" android:onClick="oneOnClick" android:layout_width="0dp" android:layout_weight="1" android:layout_height="match_parent" android:gravity="center" android:textSize="30sp" android:text="+/-"/> <!-- android:background="@drawable/selector_gray1"--> <TextView android:id="@+id/mo" andro
03-10
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/login" android:background="@drawable/bg"> <!-- 设置背景图片 --> <!-- 显示图片的ImageView --> <ImageView android:id="@+id/imageView" android:layout_width="200dp" android:layout_height="50dp" android:src="@drawable/tu2" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent"/> <!-- 底部按钮布局 --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center" android:background="#E0E0E0" app:layout_constraintBottom_toBottomOf="parent"> <Button android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="扫码连接" android:drawableStart="@drawable/bg" android:drawablePadding="8dp" android:layout_margin="10dp"/> <Button android:id="@+id/btn2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="搜索连接" android:drawableStart="@drawable/baseline_search_24" android:drawablePadding="8dp" android:layout_margin="10dp"/> <Button android:id="@+id/btn3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="地址连接" android:drawableStart="@drawable/baseline_private_connectivity_24" android:drawablePadding="8dp" android:layout_margin="10dp"/> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout>按键没有左边图标右边文字,该如何改进
03-08
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值