(六) 盘古UI,深度封装flexbox,轻松实现各种tag类型,让快速开发更自由!

(六) 盘古UI,深度封装flexbox,PanguFlexBoxView轻松实现各种tag类型,让快速开发更自由!

盘古UI,较为全面的自定义UI框架,帮助你绝对的快速开发!(长期维护中)

demo地址,点击查看github

盘古PanguFlexBoxView

可以实现各种tag类型的UI需求,包含颜色和点击选中等!

1, 样例展示图

图-1图-2图-3
在这里插入图片描述请添加图片描述请添加图片描述

2, 介绍

标签布局,盒子布局,实现各中tag标签的展示和点击,可以自定义样式!

base类方法介绍列表:

attr属性方法 method介绍 introduction
flex_directionsetFlexDirection(@FlexDirection int flexDirecti)方向 row,row_reverse,column,column_reverse
flex_enableetEnable(boolean enable)可用状态
flex_wrapsetFlexWrap(@FlexWrap int flexWrap)nowrap :不换行
wrap:按正常方向换行
wrap_reverse:按反方向换行
flex_item_marginsetItemMargin(int margin)item间距
flex_select_modesetSelectMode(@PanguFlexSelectMode int flexSelectMode)选择模式 single 单选,multiple 多选,oneMost 最多选择一个,oneLeast最少选择一个
参考PanguFlexSelectMode
flex_item_text_gravitysetItemTextGravity(int gravity)参考Gravity
--------showInputAt(int index, boolean isShow)在哪里展示输入框
--------setDataText(List list, OnItemClickListener listener)展示普通文本item,可自定义item布局,默认 R.layout.item_flex_box_text
--------setDataText(List list, int itemLayoutId, OnItemClickListener listener)展示普通文本item,可自定义item布局,默认 R.layout.item_flex_box_text
--------setDataCb(List list)设置checkBox样式的item数据,监听可以单独调取{@link #setOnItemCheckedListener(OnItemCheckedListener)}
--------setDataCb(List list, OnItemCheckedListener listener)设置checkBox样式的item数据 带监听
--------setDataCb(List list, OnItemCheckedListener listener, TextWatcherListener textWatcher)设置checkBox样式的item数据 带监听 默认item item_flex_box_cb
--------setDataCb(List list, int itemLayoutId)设置checkBox样式的item数据,监听可以单独调取{@link #setOnItemCheckedListener(OnItemCheckedListener)}
--------setDataRb(List list, OnItemCheckedListener listener, TextWatcherListener textWatcher)设置RadioButton样式的item数据,带监听
--------setDataRb(List list, OnItemCheckedListener listener)设置RadioButton样式的item数据,带监听
--------setDataRb(List list)设置RadioButton样式的item数据
--------setDataRb(List list, int itemLayoutId)设置RadioButton样式的item数据,监听可以单独调取{@link #setOnItemCheckedListener(OnItemCheckedListener)}
--------int getFlexItemCount()获取item的总条数
--------List getCheckedItem()获取已选中的item

3, 使用示例

1,布局文件

     <com.smart.pangu_ui_lib.widget.PanguFlexBoxViewandroid:layout_width="match_parent"android:id="@+id/pg_flex_box4"app:flex_select_mode="multiple"android:minHeight="50dp"android:layout_height="wrap_content" />

2,代码逻辑-准备数据

   //准备数据public static List<SelectItem> getSelectItems() {ArrayList<SelectItem> selectItems = new ArrayList<>();selectItems.add(new SelectItem("0", "PanguUI框架"));SelectItem android = new SelectItem("1", "Android");android.setShowInput(true);android.setInputContent("这是安卓....");selectItems.add(android);selectItems.add(new SelectItem("2", "Java"));selectItems.add(new SelectItem("3", "Php"));selectItems.add(new SelectItem("4", ".net",true));selectItems.add(new SelectItem("5", "H5"));selectItems.add(new SelectItem("6", "C++"));selectItems.add(new SelectItem("7", "JavaScript"));selectItems.add(new SelectItem("8", "Python"));return selectItems;}

3,设置数据

    mPgFlexBox4.setDataCb(UserUtil.getSelectItems(), new   PanguFlexBoxView.OnItemCheckedListener() {@Overridepublic void onItemCheck(SelectItem item, int position, boolean currentItemChecked) {showToast("当前" + (currentItemChecked ? "选择了" : "取消选择了") + ":position=" + position + ",name=" + item.getName());}});

4, 代码封装心得

根据自己的业务需求和自己使用app的体验封装和开发了常用的功能方法,不足之处多多指正!
欢迎来一起探讨封装之路!

5, 获取地址

demo地址,点击查看github
欢迎您扫码安装体验demo
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/624487.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

普通人如何零基础进入AIGC大模型人形机器人赛道,自学攻略,应用转化项目案例

要进入人形机器人赛道&#xff0c;普通人需要了解和掌握一系列的技能和知识&#xff0c;包括机器人设计、编程、电子工程、机械工程以及团队合作和项目管理。以下是一个详细的指南&#xff0c;帮助你从零基础开始&#xff0c;逐步进入这个充满挑战和机遇的领域。 基础教育和技能…

4月16号总结

java学习 网络编程 1.网络分层 网络分层是将网络通信划分为不同的逻辑层次&#xff0c;每一层负责特定的功能&#xff0c;从而实现网络通信的模块化和标准化。常用的网络分层模型包括OSI&#xff08;开放系统互联&#xff09;模型和TCP/IP模型。 特点和作用&#xff1a; 分…

网络安全学习路线-超详细

零基础小白&#xff0c;到就业&#xff01;入门到入土的网安学习路线&#xff01; 在各大平台搜的网安学习路线都太粗略了。。。。看不下去了&#xff01; 建议的学习顺序&#xff1a; 一、网络安全学习普法&#xff08;心里有个数&#xff0c;要进去坐几年&#xff01;&#x…

浅谈Java的synchronized 锁以及synchronized 的锁升级

在Java中&#xff0c;synchronized关键字用于实现线程间的同步&#xff0c;确保同一时刻只有一个线程能够访问被同步的代码块或方法。当一个线程获得synchronized锁定后&#xff0c;其他试图访问同一锁的线程将被阻塞&#xff0c;直到锁被释放。 synchronized锁有两种基本形式…

计算机系列之操作系统的系统

2、大话操作系统的启动 当按下开机键时&#xff0c;BIOS 就会开始执行 ​ BIOS 就是放在主板上 ROM 里面的一段程序。 ​ ROM Read Only Memory&#xff08;只能读取的内存&#xff09; ​ 所以 BIOS 在出厂的时候就可以直接写死在 ROM 里面。 ​ 每次开机的时候&#xff…

牛客网刷题 | BC51 及格分数

描述 KiKi想知道他的考试分数是否通过&#xff0c;请帮他判断。从键盘任意输入一个整数表示的分数&#xff0c;编程判断该分数是否在及格范围内&#xff0c;如果及格&#xff0c;即&#xff1a;分数大于等于60分&#xff0c;是输出“Pass”&#xff0c;否则&#xff0c;输出“…

12.哀家要长脑子了!

1.189. 轮转数组 - 力扣&#xff08;LeetCode&#xff09; ​ 方法一&#xff1a; 要注意这个k是可以大于0的&#xff0c;所以旋转数组的时候要一直保证是在1-n的范围内&#xff1a;%实现 把k个元素旋转放到前面&#xff0c;前面n-k个元素是向后移动的。 class Solution { …

【Leetcode每日一题】 动态规划 - 最小路径和(难度⭐⭐)(58)

1. 题目解析 题目链接&#xff1a;64. 最小路径和 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 算法思路梳理&#xff1a; 一、状态表示 在路径类问题中&#xff0c;状态表示通常有两种形式&#xff1a; 从 [i,…

【电控笔记2.2】电流回路+延迟效应

延迟效应的来源以及影响 数字控制系统的delay: 5.4节有介绍T0=0.5TS 低通滤波器的时间常数? 滤波器的传递函数与性能参数

【C/C++笔试练习】read函数、虚拟存储、用户态、线程特点、缺页处理、调度算法、进程优先级、锁的使用、创建进程、不用加减乘除做加法、三角形

文章目录 C/C笔试练习选择部分&#xff08;1&#xff09;read函数&#xff08;2&#xff09;虚拟存储&#xff08;3&#xff09;用户态&#xff08;4&#xff09;线程特点&#xff08;5&#xff09;缺页处理&#xff08;6&#xff09;调度算法&#xff08;7&#xff09;进程优先…

java-spring 图灵 04

在Spring框架中&#xff0c;可以使用org.springframework.core.io.support.ResourcePatternResolver接口的resolveBasePackage方法来将指定的基础包解析为用于包搜索路径的模式规范。 例如&#xff0c;如果基础包是com.example.app&#xff0c;则可以使用resolveBasePackage方法…

UE4_动画基础_不同骨骼的动画重定向步骤

学习笔记&#xff0c;仅供参考&#xff01; 1、导入fbx外部资源&#xff0c;不包含动画&#xff0c;需要使用小白人动画资源。 2、打开Girl_Skeleton。发现骨骼数量不同&#xff0c;要想使用另一个骨骼的动画资源&#xff0c;需要进行不同骨骼的动画重定向。 3、打开小白人骨骼…