添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

从网络中查询回来的数据的数据量和数据的属性有点多,所以想像excel表格那样展示出来,发现Android官方文档中没有类似的实现,然后在material官网中看见了我想要的实现效果— Data-Tables (需要梯子),但是!!!里面居然没有安卓的实现方法,更不用说存在Compose的实现方法了。android view中有表格布局和网格布局也可以用,但就要使用android view binding了,事情就变得麻烦起来,不好操作。于是乎就自己实现了一个和Material 中DataTables相似的布局。

直接上代码

//	测试用数据类
data class ABC(val a: String, val b: String, 
	val c: String, val d: String, val e: String)
@OptIn(ExperimentalFoundationApi::class)
@Preview
@Composable
fun DataTable() {
	//	数据列表
    val dataList = ArrayList<ABC>(50)
    for (i in 0 until 50) dataList.add(ABC("aaa", "bbb", "ccc", "ddd", "eee"))
	//	格子样式
    @Composable
    fun TableText(text: String?, width: Int) {
        Text(
            text = text ?: "",
            Modifier
                .width(width.dp)
                .height(50.dp)
                .border(1.dp, Color.Black)
                .padding(15.dp)
	//	定义列宽
    val cellWidthList = arrayListOf(150, 150, 150, 150, 150)
    //	使用lazyColumn来解决大数据量时渲染的性能问题
    LazyColumn(Modifier.horizontalScroll(rememberScrollState())) {
    	//	粘性标题
        stickyHeader {
            Row(Modifier.background(Color.Gray)) {
                TableText(text = "列1", width = cellWidthList[0])
                TableText(text = "列2", width = cellWidthList[1])
                TableText(text = "列3", width = cellWidthList[2])
                TableText(text = "列4", width = cellWidthList[3])
                TableText(text = "列5", width = cellWidthList[4])
        items(dataList) { data ->
            Row {
                TableText(text = data.a, width = cellWidthList[0])
                TableText(text = data.b, width = cellWidthList[1])
                TableText(text = data.c, width = cellWidthList[2])
                TableText(text = data.d, width = cellWidthList[3])
                TableText(text = data.e, width = cellWidthList[4])

DataTables
实际在手机使用时可以通过向右滑动来查看第五列的数据,向下滑动来查看更多的数据。

有一说一,是真的丑,建议能使用卡片布局就不要用这种数据表格。如果有更好的实现也可以分享一下。

前言从网络中查询回来的数据的数据量和数据的属性有点多,所以想像excel表格那样展示出来,发现Android官方文档中没有类似的实现,然后在material官网中看见了我想要的实现效果—Data-Tables(需要梯子),但是!!!里面居然没有安卓的实现方法,更不用说存在Compose的实现方法了。android view中有表格布局和网格布局也可以用,但就要使用android view binding了,事情就变得麻烦起来,不好操作。于是乎就自己实现了一个和Material 中DataTables相似的 TikTik是一款使用Jetpack Compose构建的漂亮的倒数计时器应用程序, 这也归功于 :light_bulb: 动机与情境 UI完全在Jetpack Compose构建 漂亮的倒计时动画 通过数字软键盘方便地输入时间 字体大小根据剩余时间而变化 :camera_with_flash: 屏幕截图 Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/lic
介绍 :dashing_away: 此项目致力于帮助大家更好的理解和使用Jetpack Compose框架,从而提高开发效率 项目会包含很多关于Jetpack Compose的基本使用方法以及注意事项 我们在github page上创建了专门的教程和指导链接,欢迎访问 :backhand_index_pointing_right: 来学习 1. Jetpack组成是什么? Jetpack Compose是用于内置原生界面的最新版Android工具包,采用声明式UI的设计,拥有更简单的自定义和实时的交互预览功能,由Android官方团队全新打造的UI框架
原文链接:https://www.jianshu.com/p/7bff0964c767 Jetpack Compose前段时间进入了Alpha阶段。经过去年年底至今剧烈的api变化后,现在Compose整体上大致稳定,所以我们也能对于Compose的设计进行初步的解读和评价了。 Compose从整体技术风格上来说是这样一个产物:在语法上激进模仿SwiftUI,编译/运行过程充满Svelte风格,同时也综合了各方包括Android开发组自身对UI框架的思考结果。 使用Compose时,最值得关注的就是C..
slot table(插槽表)是一个优化的内存结构,runtime 使用它来存储组合的当前状态。它在初始组合时填充数据,并在每次重新组合时更新。我们可以把它看作是所有Composable函数调用的跟踪,包括它们在源码的位置、参数、记住的值、CompositionLocals等等。它包含了在合成过程发生的一切内容。所有这些信息将被 Composer 稍后用于生成下一个更改列表,因为对树的任何更改总是依赖于当前状态。 slot table 记录Composable的状态,而 change list 则是对
带有Jetpack Compose的咖啡饮料应用 Coffee Drinks是一个Android应用程序,旨在与Jetpack Compose框架一起使用。 浅色调色板 深色调色板 展示咖啡饮料清单 用户可以将咖啡饮料标记/取消标记为收藏 用户可以阅读有关每种咖啡饮料的信息 用户可以在列表更改卡的设计 用户可以计算订单总价 支持浅色和深色主题
多平台撰写 Kotlin库,可在Android和iOS使用Jetpack Compose。 允许在Kotin为两者编写UI。 由于许多撰写功能尚不可用,因此仍处于试验阶段。 Android Studio金丝雀 cocoapods(宝石安装cocoapods) cocoapods-generate(宝石安装cocoapods-generate) 该库尚未发布到Maven Central,因为它仍处于试验阶段。 最简单的代码是: @Composable fun Content ( resources : Resources ) { Text ( " Hello world! " ) 更好的开始是: @Composable fun Content ( resources : Resources ) { HelloPlatform ()
Jetpack Compose 可以使用 LazyColumnLazyRow 组件来实现列表。这些组件可以根据需要动态加载列表项,从而提高性能和效率。您可以使用 item() 函数来定义每个列表项的外观和行为。例如,以下代码演示了如何使用 LazyColumn 组件创建一个简单的列表: ```kotlin LazyColumn { items(10) { index -> Text("Item $index") 这将创建一个包含 10 个文本项的列表,每个文本项都显示一个编号。您可以根据需要自定义每个列表项的外观和行为,以满足您的特定需求。