当前位置: 首页 > news >正文

河南网站备案所需资料厦门互联网公司排名

河南网站备案所需资料,厦门互联网公司排名,app运营方式,wordpress wiki使用这一节主要了解一下Compose中的SwipeToDismiss,在Jetpack Compose开发中,SwipeToDismiss 是用于实现滑动删除的核心组件,适用于检测水平滑动手势并触发相应的动画和操作。简单总结:API 1 DismissState:管理滑动状态的核心类&#…

           这一节主要了解一下Compose中的SwipeToDismiss,在Jetpack Compose开发中,SwipeToDismiss 是用于实现滑动删除的核心组件,适用于检测水平滑动手势并触发相应的动画和操作。简单总结:

API
1 DismissState:管理滑动状态的核心类,通过rememberDismissState()创建,包含:
dismissDirection:当前滑动方向
progress:滑动进度
isDismissed(DismissDirection):判断是否已完全滑出
performDrag(delta: Float):内部用于处理滑动距离的方法
2 DismissDirection:枚举类,定义允许的滑动方向:
StartToEnd:从左向右滑动(右滑)
EndToStart:从右向左滑动(左滑)
3 DismissValue:枚举类,表示滑动结束后的状态:
DismissedToStart:完全滑向起始方向(左滑结束)
DismissedToEnd:完全滑向结束方向(右滑结束)
Default:未滑动或滑动未达到阈值
4 ThresholdConfig:定义触发操作的阈值配置:
FractionalThreshold(fraction):按滑动距离比例
FixedThreshold(pixels):按固定像素值触发

使用场景:
1 列表项左滑删除
2 滑动显示操作按钮
3 卡片类组件的滑动交互

栗子:gradle添加依赖:

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.material.DismissDirection
import androidx.compose.material.DismissValue
import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.material.SwipeToDismiss
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Delete
import androidx.compose.material.rememberDismissState
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp@OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterialApi::class)
@Composable
fun SwipeToDeleteDemo() {var items by remember {mutableStateOf(List(20) { "列表项 ${it + 1}" })}val listState = rememberLazyListState()LazyColumn(state = listState) {items(items, key = { it }) { item ->val dismissState = rememberDismissState(confirmStateChange = { dismissValue ->if (dismissValue == DismissValue.DismissedToStart) {items = items.filter { it != item }true} else {false}})SwipeToDismiss(state = dismissState,background = {Box(modifier = Modifier.fillMaxSize().background(Color.Red).padding(16.dp),contentAlignment = Alignment.CenterEnd) {Icon(imageVector = Icons.Default.Delete,contentDescription = "删除",tint = Color.White)}},dismissContent = {Box(modifier = Modifier.fillMaxWidth().background(MaterialTheme.colorScheme.surface).padding(20.dp)) {Text(text = item)}},directions = setOf(DismissDirection.EndToStart))}}
}

注意事项
1 明确限制滑动方向,通过directions参数指定允许的滑动方向,避免无意义的双向滑动;
2 处理状态变化的确认逻辑,confirmStateChange回调用于确认是否允许状态变化,返回true表示允许;
3 避免嵌套滑动冲突,若滑动项内部包含可滑动组件,需通过nestedScroll处理滑动冲突,或禁用内部滑动;

http://www.dtcms.com/a/560774.html

相关文章:

  • Vue.js 与 Ajax(axios)深度整合指南
  • 25年05月架构甄选范文“论负载均衡设计”,软考高级,系统架构设计师论文
  • SQL键类型详解:超键到外键全解析
  • vue使用d3实现图片的缩放、拖动、添加/删除标记等功能(完整版前端+后端)
  • 纯前端打造个人成长网站:零后端、零部署、零服务器的实践分享
  • Vue解决开发环境 Ajax 跨域问题
  • 网站注册地查询济南网站建设要多少钱
  • 清控人居建设集团网站简历模板word
  • RDPWD!SM_Connect函数中pRealSMHandle->encryptionLevel的由来
  • Spring数据访问基石:JDBC与事务架构总览
  • 【Hadoop】Hadoop 起源与核心组件解析 —— 大数据时代的分布式基石
  • 【printpdf】date.rs 文件详细解析
  • Pycharm详解:高效Python开发的首选IDE
  • 广州市品牌网站建设公司微网站的特点
  • 影刀RPA完全指南:从零开始掌握智能自动化(1/10)
  • 淄博淘宝网站建设企业管理官网登录入口
  • ES6模板字符串
  • Dart 语法核心 7 讲:变量 + 常量 + 数据类型 + 空安全 + 运算符 + 流程控制 + 函数
  • 【Android】活动的正/异常生命周期和启动模式、标志位详解
  • AI换脸技术安全指南:3条法律红线与合规实践
  • 【2025-11-01】软件供应链安全日报:最新漏洞预警与投毒预警情报汇总
  • 使用thefuck报错ModuleNotFoundError: No module named ‘distutils‘
  • 算法23.0
  • 怎么做免费的网站推广网站正在建设中 html 模板
  • 鸿蒙Flutter三方库适配指南:10.插件测试
  • 购物车高效开发指南:API与Vuex实战
  • 广州网站建设公司哪家好展厅设计制作
  • 【BFS 解决FloodFill 算法】4. 被围绕的区域(medium)
  • Go channel 的核心概念、操作语义、设计模式和实践要点
  • 现在还可以做夺宝网站怎么让网站被百度搜到