ConstraintLayout 通过setVerticalBias 实现动态设置控制位置

2023-05-16

* 使用场景:设置布局的时候,想通过ConstraintLayout实现滑块与文字同步移动
* 思路:ConstraintLayout在xml布局中有layout_constraintvertical_bias设置项能否找到一个功能类来完成?
* ConstraintLaout控件引入后可以看到 constraintLayout.setConstraintSet(ConstraintSet set);
* 关键操作是:ConstraintSet  constraintSet.setVerticalBias();
    函数参数:setVerticalBias(int viewId, float bias) 
* [官网_ConstraintSet](https://developer.android.google.cn/reference/androidx/constraintlayout/widget/ConstraintSet?hl=en)
* 可以看到约束布局的方式 (使用第三种)
    1. Manually
   ConstraintSet  c = new ConstraintSet(); c.connect(....);
    2. from a R.layout.* object
   ConstraintSet c.clone(context, R.layout.layout1);
    3. from a ConstraintLayout
   ConstraintSet c.clone(constraintLayout);
* 参考官网给出的代码:

思路整理如下:

ConstraintLayout mConstraintLayout;
  1. ConstraintSet mConstraintSet1 = new ConstraintSet(); //创建对象
  2. mConstraintSet1.clone(mConstraintLayout); //获取约束布局
  3. TransitionManager.beginDelayedTransition;//位置移动动画设置
  4. constraintSet.setVerticalBias(viewId, bias);
  5. constraintSet.applyTo(mConstraintLayout);
  6.  mConstraintLayout.setConstraintSet(setContrainLayoutViewBias(R.id.tv_weight_value, bias));
        
* 提供一个伪代码供参考
```
    ConstraintLayout ll_button_plus_weight;
        ll_button_plus_weight.setConstraintSet(setContrainLayoutViewBias(R.id.tv_weight_value, bias));

    //设置ContrainLayout布局bias位置
    private ConstraintSet setContrainLayoutViewBias(int viewId, float bias) {
       ConstraintSet constraintSet = new ConstraintSet();
        constraintSet.clone(ll_button_plus_weight);

        TransitionManager.beginDelayedTransition(ll_button_plus_weight);
        constraintSet.setVerticalBias(viewId, bias);
        constraintSet.applyTo(ll_button_plus_weight);
        return constraintSet;
    }


```
基本流程技术处这样了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ConstraintLayout 通过setVerticalBias 实现动态设置控制位置 的相关文章

随机推荐

  • ubuntu的Files资源管理器打不开解决方案

    之前安装一个软件中途可能依赖包的问题导致安装失败之后就没管 后来发现Files打不开了 xff0c 查看计算机中的文件只能用命令行了 虽然也不影响啥 xff0c 但是想预览一些图片时就比较不方便 本来想用命令ps A grep nautil
  • Java中String的长度限制解析

    前言 话说Java中String是有长度限制的 xff0c 听到这里很多人不禁要问 xff0c String还有长度限制 xff1f 是的有 xff0c 而且在JVM编译中还有规范 xff0c 而且有的家人们在面试的时候也遇到了 xff0c
  • EFCore——三种关系的配置(9)

    关系的配置之一对多 一 关系配置的套路二 一对多1 创建实体2 实体配置3 迁移4 控制台进行数据操作5 关系依赖添加 二 一对一1 实体属性2 配置关系 三 多对多 一 关系配置的套路 EFCore中配置的套路 HasXXX WithXX
  • NetCore缓存——内存缓存(3)

    内存缓存 一 缓存数据类型二 缓存特性三 用法 一 缓存数据类型 缓存放到应用程序的内存中 内存缓存中保存的是一系列的键值对 就像Dictionary类型一样 二 缓存特性 内存缓存保存在当前运行的网站程序的内存中是和进程相关的 因为在we
  • 流程审批系统设计思路及实现方法

    背景 流程审批系统是一个很常见的系统 xff0c 包括我们在日常权限申请 xff0c 订单状态流转等很多场景都会接触 其核心的点有两个 xff1a 1 状态流转 2 流程驱动 我们以我们常见的流程审批为例 xff0c 比如我想向上街申请一台
  • 【问题】Ubuntu20.04桌面某些图标不显示

    问题 x1f631 xff1a 在桌面新建了test md xff0c 保存后关闭 桌面没有对应文件的图标 分析 x1f42f xff1a gnome shell问题 解决方案 x1f489 xff1a 重启gnome shell 按下al
  • 【python】连接远程服务器并传输文件,执行命令,传回文件

    使用Paramiko完成连接远程服务器并传输文件 执行命令 传回文件的功能 1 安装 pip install paramiko 2 config json nbsp nbsp file path home test test nbsp nb
  • centos7 安装GNOME 使用vnc连接

    1 xff1a 查看当前系统运行级别 命令 xff1a runlevel root span class hljs decorator 64 wst runlevel span N span class hljs number 3 span
  • 升级AS gradle错误

    错误信息 Direct local aar file dependencies are not supported when building an AAR 最近升级了AS和gradle 在编译时总是提示 gt Direct local a
  • 【项目实战】Spring体系结构与框架图

    一 Spring 体系结构 Spring 有可能成为所有企业应用程序的一站式服务点 xff0c 然而 xff0c Spring 是模块化的 xff0c 允许你挑选和选择适用于你的模块 xff0c 不必要把剩余部分也引入 下面的部分对在 Sp
  • sizeof的使用方法!!!

    sizeof xff08 int xff09 等的大小依赖于操作系统的位数 xff0c 如果是在 16 位 DOS 环境下 xff0c 用 TC 编译 xff0c 则为 2 xff0c 如果在 windows 环境下 xff0c 用 VC
  • sql中like的所有用法

    在sql结构化查询语言中 xff0c like语句有着至关重要的作用 like语句的语法格式是 xff1a select from 表名 where 字段名 like 对应值 xff08 子串 xff09 xff0c 它主要是针对字符型字段
  • FTP文件服务器拉取不存在的文件后出现连接不上的问题

    公司使用ftp作为各个业态文件交互中转站 xff0c 此FTP功能由我负责开发维护 开发使用的语言是java xff0c 初始化连接代码如下 xff1a span class token keyword public span FTPSCl
  • kali镜像下载官网地址

    http www kali org downloads
  • 如何powershell用7z命令批量压缩文件

    eidt by lfq date 20220915 use to 压缩 如何使用powershell执行7z命令 1 把压缩包里的两份文件放到C盘C Windows System32下 2 win 43 r输入cmd执行7z a file
  • Ubuntu20.04 安装 Google Chrome浏览器

    一 在 Ubuntu 上安装 Google Chrome 1 下载 Google Chrome 使用Ctrl 43 Alt 43 T快捷键或者点击终端图标 xff0c 打开你的终端 安装软件时最好是先更新一下 xff01 sudo apt
  • hexo博客5:更新部署&域名配置

    hexo博客5 xff1a 更新部署 amp 域名配置 一 Hexo更新二 部署脚本三 自定义域名四 参考 一 Hexo更新 管理员模式进入cmd hexo clean hexo generate hexo deploy 二 部署脚本 也可
  • Windows远程连接centos7图形化界面,安装xrdp

    Windows远程连接centos7图形化界面 xff0c 安装xrdp 写在最前面准备工作查看ubuntu系统的版本信息和gcc版本尝试进入图形化界面更新yum 下载安装图形化界面查询本地是否有Server with GUI group安
  • 华为机试—围棋吃子(下围棋)判决(高级题160分:深度优先遍历)(图文吐血整理)

    题目 xff1a 围棋中 xff0c 一个棋子在棋盘上 xff0c 与它直接紧邻的空点是这个棋子的 气 xff0c 棋子直接紧邻的点上 xff0c 如果有同色妻子存在 xff0c 则它们便相互组成一个不可分割的整体 xff0c 它们的 气
  • ConstraintLayout 通过setVerticalBias 实现动态设置控制位置

    使用场景 xff1a 设置布局的时候 xff0c 想通过ConstraintLayout实现滑块与文字同步移动 思路 xff1a ConstraintLayout在xml布局中有layout constraintvertical bias设