【Android】 ConstraintLayout实操

这篇具有很好参考价值的文章主要介绍了【Android】 ConstraintLayout实操。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

由于最近比较悠闲,重新学习了constraintlayout,看着官网学的,官网网站如下:https://developer.android.com/training/constraint-layout?hl=zh-cn#alignment

其实之前也小小的学过一波constraintlayout,不过因为用线性布局跟相对布局习惯了,加上使用constraintlayout的时候不熟练,控件经常没有出现在预想的位置,后面就没用了。

这里只记录在官网学习的时候遇到的阻碍,官网有的就不写了。

引导线\屏障位置

第一个阻碍是引导线位置,找了一会才找到,右击-Add helpers- guideline就是引导线,barrier就是屏障。

【Android】 ConstraintLayout实操,android

 或者是点击左上角的工具栏

【Android】 ConstraintLayout实操,android

使用链控制线性组

同时选择三个button,右击-chains-create Horizontal chain(我想要它们水平对齐)

【Android】 ConstraintLayout实操,android

创建链之后再右击就会长这样了

【Android】 ConstraintLayout实操,android

就有了样式选择,结合官网就知道每个样式对应什么样子了,下面就是官网的截图

【Android】 ConstraintLayout实操,android

例如我选择了 packed效果就会如下图。

【Android】 ConstraintLayout实操,android

如果我想让它们顶端对齐呢,需要右击-Align-Top Edges,完美。 

动画

使用 ConstraintSet 和 TransitionManager 为尺寸和位置元素的变化添加动画效果。

 需要两个布局文件,一个是动画开始前的,一个是动画之后的。

布局1:activity_constraint1.xml

<?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:id="@+id/constraint"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/button2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="Button"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
    

 布局2:activity_constraint2.xml

<?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">

    <Button
        android:id="@+id/button2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="Button"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

    

Activity代码:

public class ConstraintActivity extends AppCompatActivity {
    private Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_constraint1); //设置一开始的布局
        button = findViewById(R.id.button2);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                animate();
            }
        });
    }

    public void animate(){
        ConstraintLayout constraintLayout = findViewById(R.id.constraint); //获取父布局
        ConstraintSet constraintSet = new ConstraintSet(); // ConstraintSet用于存储布局所有的约束
        constraintSet.load(this,R.layout.activity_constraint2); //加载第二个布局文件的ConstraintSet
        TransitionManager.beginDelayedTransition(constraintLayout);
        constraintSet.applyTo(constraintLayout); //布局参数过度到第二个布局文件的ConstraintSet
    }
}

不过至少从它需要两个重复率这么高的布局看,我觉得这种动画不咋地。文章来源地址https://www.toymoban.com/news/detail-815485.html

到了这里,关于【Android】 ConstraintLayout实操的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android+Appium自动化测试环境搭建及实操

     Appium是一个开源的移动端自动化测试工具,适用于 移动端原生APP、移动Web APP或混合APP 的自动化测试;  Appium继承了Selenium(Web端自动化测试工具),应用 WebDriver (JSON wire protocol)技术,借助操作系统自带的测试框架来驱动Android和IOS应用。 特点 :Appium是一个开源、跨平台、多

    2024年02月08日
    浏览(65)
  • 不会代码(实操能力弱一点)的我如何快速开发出一个Android/Web/IOS/小程序

    像做PPT一样的可视化编程语言你想拥有吗,可以自己尝试一下。 像PPT一样的编程语言 抽象出超过200+前端和后台原子组件,每个组件都具备“不可拆分”特性,并表达独立具有特征的属性;同时每个组件都具备“属性”“触发条件”“功能(函数)”。 逻辑编辑框架:(专利

    2024年02月09日
    浏览(92)
  • ConstraintLayout约束布局

    示例布局: 并且viewpaer的内容用的fragment,fragment布局里是RecyclerView 在这种复杂布局中,就遇到RecyclerView内容拉不到底部的问题。通过分析界面,发现是因为viewpager的布局已经超出屏幕了。 外层的根布局用 RelativeLayout 或者  LinearLayout 就能解决RecyclerView内容拉不到底部的问题

    2024年02月10日
    浏览(35)
  • 【约束布局】使用 Design 模式编辑 ConstraintLayout 约束布局 ( 添加 Guideline 引导线 | 添加 FragmentContainerView )

    向约束布局 ConstraintLayout 中添加两个 Fragment , 垂直方向各占 50 % , 一个在屏幕上半部分 , 一个占据屏幕下半部分 ; 向 约束布局 中添加一条 Guideline 引导线 , 点击 布局中的 Guidelines 按钮 , 在弹出的 下拉菜单中 , 选择 Horizontal Guideline 水平引导线 , 此时在下方的界面中 , 就会出现

    2023年04月09日
    浏览(38)
  • 【错误记录】约束布局报错 ( Missing Constraints in ConstraintLayout. This view is not constrained. It only has )

    约束布局中 , 如果不给组件添加约束 , 就会报如下错误 : Design 界面拖动添加约束操作 : 手动拖动 布局上下左右的 约束按钮 , 添加约束 ; Code 代码添加约束 : 在代码中 , 添加 如下 上下左右的 约束 ; app:layout_constraintBottom_toTopOf=“@+id/guideline3” app:layout_constraintEnd_toEndOf=“parent”

    2024年02月08日
    浏览(44)
  • Android studio导入Android源码(AOSP Android 14)

    1. 完整编译AOSP源码 有些java文件是在编译过程中动态生成的,需要完整编译一遍,源码的依赖才能完整。 2. 生成IDE导入的工程文件 执行完成后,在AOSP根目录下生成文件: 3. 导入前,编辑工程文件 (这步很重要,影响代码的加载速度和跳转) 编辑android.iml文件,需要修改2部

    2024年02月10日
    浏览(44)
  • Android入门教程||Android 架构||Android 应用程序组件

    Android 操作系统是一个软件组件的栈,在架构图中它大致可以分为五个部分和四个主要层。 在所有层的最底下是 Linux - 包括大约115个补丁的 Linux 3.6。它提供了基本的系统功能,比如进程管理,内存管理,设备管理(如摄像头,键盘,显示器)。同时,内核处理所有 Linux 所擅

    2024年02月13日
    浏览(45)
  • Android 面试(Android 篇)

    原理: 触发条件: 引起条件: 查看方式 避免建议: 原因 解决 扩展 内存抖动 内存溢出 扩展: 内存泄漏 问:常见的内存泄露有哪些?如何解决? 问:为什么单例模式会持有当前activity的引用,无法释放 备注: standard:标准模式, 2 从 A 跳转 B 3 从 B 跳转 A singleTop 栈顶复用模

    2024年02月04日
    浏览(34)
  • 【Android】Android虚拟机

    Android的虚拟机主要有两种: Dalvik 虚拟机 和 ART(Android Runtime)虚拟机 。 Dalvik 虚拟机 Dalvik 虚拟机是 Android 早期使用的虚拟机,它 基于寄存器架构 。从Android 2.2版本开始,支持 JIT即时编译(Just In Time) 在程序运行的过程中进行选择热点代码(经常执行的代码)进行编译或者

    2024年02月07日
    浏览(40)
  • Android版本API对应表(Android9.0-Android 14.0)

    Android 14(API 级别 34) Android 13(API 级别 33) Android 12(API 级别 31、32) Android 11(API 级别 30) Android 10(API 级别 29) Android 9(API 级别 28) 参考文档

    2024年02月02日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包