离线推广网站规划书,徐州集团网站建设报价,分模板网站和定制网站,游戏开发工程师需要学什么ConstraintLayout的基本用法
1、基线对齐——Baseline
有时候我们需要这样一个场景#xff1a; app:layout_constraintBaseline_toBaselineOfid/302、链——Chains
用于将多个控件形成一条链#xff0c;可以用于平分空间。
?xml version1.0…ConstraintLayout的基本用法
1、基线对齐——Baseline
有时候我们需要这样一个场景 app:layout_constraintBaseline_toBaselineOfid/302、链——Chains
用于将多个控件形成一条链可以用于平分空间。
?xml version1.0 encodingutf-8?
androidx.constraintlayout.widget.ConstraintLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityTextViewandroid:idid/Aandroid:layout_width80dpandroid:layout_height80dpandroid:gravitycenterandroid:textAandroid:textSize25spapp:layout_constraintEnd_toStartOfid/Bapp:layout_constraintHorizontal_chainStylespread_insideapp:layout_constraintStart_toStartOfparentapp:layout_constraintTop_toTopOfparent /TextViewandroid:idid/Bandroid:layout_width80dpandroid:layout_height80dpandroid:gravitycenterandroid:textBandroid:textSize25spapp:layout_constraintEnd_toStartOfid/Capp:layout_constraintStart_toEndOfid/Aapp:layout_constraintTop_toTopOfparent /TextViewandroid:idid/Candroid:layout_width80dpandroid:layout_height80dpandroid:gravitycenterandroid:textCandroid:textSize25spapp:layout_constraintEnd_toEndOfparentapp:layout_constraintStart_toEndOfid/Bapp:layout_constraintTop_toTopOfparent /
/androidx.constraintlayout.widget.ConstraintLayoutapp:layout_constraintHorizontal_chainStyle有三个参数分别是
spread默认均分剩余空间 spread_inside两侧的控件贴近两边剩余的控件均分剩余空间 packed所有控件贴紧居中 3、Guideline——参考线 Guideline是一条参考线可以帮助开发者进行辅助定位并且实际上它并不会真正显示在布局中像是数学几何中的辅助线一样使用起来十分方便出场率很高Guideline也可以用来做一些百分比分割之类的需求有着很好的屏幕适配效果Guideline有水平和垂直方向之分位置可以使用针对父级的百分比或者针对父级位置的距离 androidx.constraintlayout.widget.Guidelineandroid:idid/Guidelineandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:orientationhorizontalapp:layout_constraintGuide_percent0.10 /在这里设置了一个垂直方向10%的Guideline,控件A依赖于这个Guideline因此不论布局如何变化A始终在Guideline下方。
4、Barrier——屏障 这个Barrier和Guideline一样也不会实际出现在布局中它的作用如同其名形成一个屏障、障碍使用也非常多。 创建一个障碍来确保视图不会重叠无论内容有多长。 androidx.constraintlayout.widget.Barrierandroid:idid/barrierandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentapp:constraint_referenced_idstextView2,textView1app:barrierDirectionend/barrierDirection表示障碍的位置
constraint_referenced_ids表示在什么视图部分创建障碍 如图不管文字如何变化始终都是不会重叠显示灰色显示部分就是障碍Barrier
5、Group——组 工作当中常常会有很多个控件同时隐藏或者显示的场景传统做法要么是进行嵌套对父布局进行隐藏或显示要么就是一个一个设置这显然都不是很好的办法ConstraintLayout中的Group就是来解决这个问题的。Group的作用就是可以对一组控件同时隐藏或显示没有其他的作用它的属性如下: androidx.constraintlayout.widget.Groupandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:visibilityvisibleapp:constraint_referenced_idsA,B,C /app:constraint_referenced_idsid,id 加入组的控件id 使用invisible、visible、gone进行设置视图的可见与不可见。
6、Placeholder——占位符 Placeholder的作用就是占位它可以在布局中占好位置通过app:content属性或者动态调用setContent()设置内容来让某个控件移动到此占位符中 ?xml version1.0 encodingutf-8?
androidx.constraintlayout.widget.ConstraintLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:background#DAF3FEtools:context.MainActivitytools:ignoreHardcodedTextTextViewandroid:idid/Aandroid:layout_width100dpandroid:layout_height60dpandroid:gravitycenterandroid:textAandroid:textColorcolor/blackandroid:textSize25spandroid:textStyleboldapp:layout_constraintStart_toStartOfparentapp:layout_constraintTop_toTopOfparent /androidx.constraintlayout.widget.Placeholderandroid:layout_width100dpandroid:layout_height60dpapp:layout_constraintEnd_toEndOfparentapp:layout_constraintTop_toTopOfparent //androidx.constraintlayout.widget.ConstraintLayout当我们设置app:contentid/A或者调用setContent()时控件A就会被移动到Placeholder中当然在布局中使用app:content显然就失去了它的作用。