侧滑置顶,取消置顶
第一步:布局
<?xml version="1.0" encoding="utf-8"?> <com.ddmh.magic.camera.ui.widget.SwipeMenuLayout 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="60dp"android:layout_marginTop="12dp"android:clickable="true"app:ios="false"app:leftSwipe="true"app:swipeEnable="true"><androidx.constraintlayout.widget.ConstraintLayoutandroid:id="@+id/cst_out"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/tv_team_name_short"android:layout_width="60dp"android:layout_height="match_parent"android:background="@drawable/bg_5493f7_4radius"android:gravity="center"android:text="xxxx"android:textColor="#ffffffff"android:textSize="18sp"app:layout_constraintLeft_toLeftOf="parent" /><TextViewandroid:id="@+id/tv_top_tips"android:layout_width="32dp"android:layout_height="18dp"android:background="@drawable/bg_e0e0e0_4radius"android:gravity="center"android:text="置顶"android:textColor="#ff878f99"android:textSize="10sp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toTopOf="parent" /><TextViewandroid:id="@+id/tv_team_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="8dp"android:ellipsize="end"android:maxWidth="250dp"android:singleLine="true"android:text="xxx"android:textColor="#ff1d2129"android:textSize="16sp"app:layout_constraintBottom_toTopOf="@+id/tv_team_day"app:layout_constraintHorizontal_weight="1"app:layout_constraintLeft_toRightOf="@+id/tv_team_name_short"app:layout_constraintTop_toTopOf="@+id/tv_team_name_short" /><TextViewandroid:id="@+id/tv_admin"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="8dp"android:background="@drawable/bg_ff615d_2radius"android:paddingLeft="7dp"android:paddingTop="5dp"android:paddingRight="7dp"android:paddingBottom="5dp"android:text="主xx员"android:textColor="#ffff615d"android:textSize="10sp"app:layout_constraintLeft_toRightOf="@+id/tv_team_name"app:layout_constraintTop_toTopOf="@+id/tv_team_name" /><ImageViewandroid:id="@+id/tv_team_day"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/icon_today"app:layout_constraintBottom_toBottomOf="@+id/tv_team_name_short"app:layout_constraintLeft_toLeftOf="@+id/tv_team_name"app:layout_constraintTop_toBottomOf="@+id/tv_team_name" /><TextViewandroid:id="@+id/tv_takephots_peoples"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="@dimen/dp_4"android:text="xxxx"android:textColor="#ff878f99"android:textSize="12sp"app:layout_constraintBottom_toBottomOf="@+id/tv_team_day"app:layout_constraintLeft_toRightOf="@+id/tv_team_day"app:layout_constraintTop_toTopOf="@+id/tv_team_day" /><TextViewandroid:id="@+id/tv_pic_num"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="20dp"android:text="xxx"android:textColor="#ff878f99"android:textSize="12sp"app:layout_constraintBottom_toBottomOf="@+id/tv_takephots_peoples"app:layout_constraintLeft_toRightOf="@+id/tv_takephots_peoples"app:layout_constraintTop_toTopOf="@+id/tv_takephots_peoples" /></androidx.constraintlayout.widget.ConstraintLayout><LinearLayoutandroid:id="@+id/ll_top"android:layout_width="90dp"android:layout_height="match_parent"android:background="@color/color_gray"android:gravity="center"><TextViewandroid:id="@+id/tv_top"android:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center"android:text="置顶"android:textColor="@color/white"android:textSize="16sp" /></LinearLayout> </com.ddmh.magic.camera.ui.widget.SwipeMenuLayout>
第二步:适配器
class TeamItemAdapter(var list: ArrayList<TeamListBean>?) :BaseQuickAdapter<TeamListBean, BaseViewHolder>(R.layout.item_team_member, list) {override fun convert(holder: BaseViewHolder, item: TeamListBean) {holder.setText(R.id.tv_team_name_short, CommonUtils.getBeforeTwoStr(item.teamName))holder.setText(R.id.tv_team_name, item.teamName)holder.setText(R.id.tv_takephots_peoples, "已xx数:2")holder.setGone(R.id.tv_top_tips, !item.topFlag)holder.setText(R.id.tv_pic_num, "照片:2")when (item.roleType) {1 -> {holder.setText(R.id.tv_admin, "主管理员")holder.setTextColor(R.id.tv_admin,AppContext.appContext.resources.getColor(R.color.color_ff615d))holder.setBackgroundResource(R.id.tv_admin, R.drawable.bg_ff615d_2radius)}2 -> {holder.setText(R.id.tv_admin, "管理员")holder.setTextColor(R.id.tv_admin,AppContext.appContext.resources.getColor(R.color.color_f2a649))holder.setBackgroundResource(R.id.tv_admin, R.drawable.bg_1af2a649_2radius)}3 -> {holder.setText(R.id.tv_admin, "成员")holder.setTextColor(R.id.tv_admin,AppContext.appContext.resources.getColor(R.color.font_39ba81))holder.setBackgroundResource(R.id.tv_admin, R.drawable.bg_39ba81_2radius)}}var tvTop = holder.getView<TextView>(R.id.tv_top)tvTop.text = if (item.topFlag) {"取消置顶"} else {"置顶"}if (item.topFlag) {holder.setBackgroundColor(R.id.ll_top,AppContext.appContext.resources.getColor(R.color.color_ff615d))} else {holder.setBackgroundColor(R.id.ll_top,AppContext.appContext.resources.getColor(R.color.font_c9cdd4))}}
}
第三步:代码
mTeamAdapter.addChildClickViewIds(R.id.tv_top, R.id.cst_out)
mTeamAdapter.setOnItemChildClickListener { adapter, view, position ->val bean = adapter.data[position] as TeamListBeanwhen (view.id) {R.id.tv_top -> {bean.topFlag = !bean.topFlagadapter.notification}R.id.cst_out -> {}}}
相关文章:
侧滑置顶,取消置顶
第一步:布局 <?xml version"1.0" encoding"utf-8"?> <com.ddmh.magic.camera.ui.widget.SwipeMenuLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"…...
Pycharm解决启动时候索引慢的问题
设置里去掉update里面的两个勾 shared indexes中,把自动下载索引改成不下载使用本地索引...
Http请求响应时间一般划分标准
HTTP请求的响应时间被认为是长或短通常取决于具体应用场景和性能需求。一般来说,以下是一些常见的对HTTP请求响应时间进行划分的标准: 即时响应:通常在毫秒级别的响应时间被认为是即时响应。这适用于对实时性要求较高的应用,如实时…...
生成测试报告,在Unittest框架中就是简单
测试套件(Test Suite)是测试用例、测试套件或两者的集合,用于组装一组要运行的测试(多个测试用例集合在一起)。 (1)创建一个测试套件: import unittest suite unittest.TestSuite…...
生成式人工智能的潜在有害影响与未来之路(一)
这是本文的第1版,反映了截至2023年5月15日,Generative AI的已记载的和预期的危害。由于Generative AI的发展、使用和危害的快速变化,我们承认这是一篇内在的动态论文,未来会发生变化。 在本文中,我们使用一种标准格式…...
lightdb23.3 表名与包名不能重复
LightDB 表名与包名不能重复 从 LightDB 23.3 版本开始表名和包名不能重复,与 oracle 一致。原先已已支持包名和schema名不能重复。 背景 在之前版本在同一schema 下可以创建相同名字的表和包。这会导致在存储过程中使用%type指定变量类型时,如果存在…...
Oracle 开发篇+Java通过HiKariCP访问Oracle数据库
标签:HikariCP、数据库连接池、JDBC连接池、释义:HikariCP 是一个高性能的 JDBC 连接池组件,号称性能最好的后起之秀,是一个基于BoneCP做了不少的改进和优化的高性能JDBC连接池。 ★ Java代码 import java.sql.Connection; impor…...
进销存管理系统(小杨国贸)springboot采购仓库财务java jsp源代码mysql
本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 进销存管理系统(小杨国贸)spri…...
指针初阶(2)
文章目录 5. 指针和数组6. 二级指针7. 指针数组 附: 5. 指针和数组 指针变量:指针变量就是指针变量,不是数组,指针变量的大小是4/8个字节,专门是用来存放地址的。 数组:数组就是数组,不是指针&a…...
基于Gradio的GPT聊天程序
网上很多别人写的,要用账号也不放心。就自己写了一个基于gradio的聊天界面,部署后可以本地运行。 特点: 可以用openai的,也可以用api2d,其他api可以自己测试一下。使用了langchain的库 可以更改模型,会的…...
包管理工具详解npm 、 yarn 、 cnpm 、 npx 、 pnpm(2023)
1、包管理工具npm (1)包管理工具npm: Node Package Manager,也就是Node包管理器;但是目前已经不仅仅是Node包管理器了,在前端项目中我们也在使用它来管理依赖的包;比如vue、vue-router、vuex、…...
Terraform 系列-批量创建资源时如何根据某个字段判断是否创建
系列文章 Terraform 系列文章Grafana 系列文章 概述 前文 Grafana 系列 - Grafana Terraform Provider 基础 介绍了使用 Grafana Terraform Provider 创建 Datasource. 这几天碰到这么一个现实需求: 使用 Terraform 批量创建日志数据源时, 有的数据源类型是 El…...
Android侧滑栏(一)可缩放可一起移动的侧滑栏
在实际的各类App开发中,经常会需要做一个左侧的侧滑栏,类似于QQ这种。 今天这篇文章总结下自己在开发中遇到的这类可以跟随移动且可以缩放的侧滑栏。 一、实现原理 使用 HorizontalScrollView 实现一个水平方向的可滑动的View,左布局为侧滑…...
简单程度与自负是否相关?探索STM32的学习价值
事实上,无论STM32是否简单并不重要,更重要的是我们能通过学习STM32获得什么。通过STM32,我们可以学习到许多知识:如果我们制作一个键盘或鼠标,我们可以学习USB协议。如果我们制作一个联网设备,我们需要学习…...
第二章:CSS基础进阶-part3:弹性例子布局
文章目录 Flex盒模型二、常见属性2.1 flex属性2.2 justify-content2.3 flex-wrap2.4 flex-flow2.5 align-items2.6 父容器-align-content Flex盒模型 1、普通盒模型 2、弹性盒布局 使用弹性盒布局能让容器的宽度跟随浏览器窗口的变化而变换 二、常见属性 2.1 flex属性 2.2 …...
函数与方法有区别?
有区别,当然是有区别。 不管是java、rust还是go,他们都是不一样的。 先看定义: 函数(Function) 是一段独立的代码块,用于执行特定的任务。函数可以被多次调用,并且可以接受参数和返回结果。在G…...
VMware vCenter忘记密码操作,和Linus原理一致
mount -o remount,rw / passwd root ## 修改 root 密码要选择对应账户## 输入新密码,再输入一次新密码 umount / ## 卸载根文件系统 reboot -f ## 重新引导 vCenter...
Bert详细学习及代码实现详解
BERT概述 BERT的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder,因为decoder是不能获要预测的信息的。在大型语料库(Wikipedia BookCorpus)上训练一个大型模型(12 层到 …...
Vue [Day7] 综合案例
核心概念回顾 state:提供数据 getters:提供与state相关的计算属性 mutations:提供方法,用于修改state actions:存放异步操作 modules:存模块 功能分析 https://www.npmjs.com/package/json-server#ge…...
基于R做宏基因组的进化树ClusterTree分析
写在前面 同上一篇的PCoA分析,这个也是基于公司结果基础上的再次分析,重新挑选样本,在公司结果提供的csv结果表上进行删减,本地重新分析作图 步骤 表格预处理 在公司给的ClusterTree的原始表格数据里选取要保留的样本…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
