精华内容
下载资源
问答
  • JetpackCompose.app 是一个网站,可帮助您了解自开发以来Android开发中最大的变化。 它由工具,教程,资源和示例组成,可帮助您提高Jetpack Compose的知识。 网站上有4个主要部分: 查找有关Jetpack Compose的...
  • 很早之前写过一篇JetPackCompose尝鲜的一篇,今天是趁着年前项目上线之后学习一下,今年Compose发展还是很好的,发布了很多版本,2021会有一个release版本,未来可期啊~~这里就不说太多废话,直接上代码: ...

    很早之前写过一篇JetpackCompose尝鲜的一篇,今天是趁着年前项目上线之后学习一下,今年Compose发展还是很好的,发布了很多版本,2021会有一个release版本,未来可期啊~~这里就不说太多废话,直接上代码:

    1.设置布局:

    setContent {
        MaterialTheme {
            setView("JetPack Compose")
        }
    }

    2.设置几个TextView和添加点击事件:

    @Composable
    private fun setView(s: String) {
        val intent = Intent(this, ComPoseListActivity::class.java)
        //列显示
        Column {
            //1.简单的Text使用
            Text(
                text = "1.简单的Text控件使用"
            )
            //2.控件颜色、字体大小、显示行数、超出处理
            Text(
                text = "2.使用自定义Style使用自定义Style使用自定义Style使用自定义Style使用自定义Style使用自定义Style使用自定义Style使用自定义Style使用自定义Style",
                overflow = TextOverflow.Ellipsis,
                maxLines = 1,
                style = TextStyle(
                    Color.Red,
                    fontSize = TextUnit.Companion.Sp(12f),
                    fontStyle = FontStyle.Italic
                )
            )
            //3.使用系统自带样式
            Text(
                text = "3.使用系统自带样式",
                overflow = TextOverflow.Ellipsis,
                maxLines = 1,
                style = ((+MaterialTheme.typography()).subtitle1.copy()).copy(Color.Green),
                modifier = Spacing(6.dp)
            )
            //4.使用系统自带样式,通过copy讲颜色改成蓝色
            Text(
                text = "4.使用系统自带样式,通过copy讲颜色改成蓝色",
                overflow = TextOverflow.Ellipsis,
                maxLines = 1,
                style = ((+MaterialTheme.typography()).subtitle1.copy()).copy(Color.Blue)
            )
            //5.使用段落属性
            Text(
                text = "5.用段落属性,设置行高用段落属性,设置行高用段落属性",
                overflow = TextOverflow.Ellipsis,
                maxLines = 2,
                style = ((+MaterialTheme.typography()).body2.copy()).withOpacity(0.87f)
                    .copy(Color.Red),
                paragraphStyle = ParagraphStyle(
                    textAlign = TextAlign.Center,
                    lineHeight = TextUnit.Sp(32)
                )
            )
    
            Button(
                onClick = {
                    startActivity(intent)
                }
            ) {
                Text(
                    text = "进入列表"
                )
            }
        }
    }

    3.实现的效果图如下:

    4.实现一个列表:

    val articles = mutableListOf<Article>()
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        repeat(11) {
            articles.add(
                Article(
                    id = "$it",
                    title = "Jetpack Compose入门",
                    url = "http://www.wanandroid.com/articles/$it",
                    user = User(id = "188", name = "第${it}讲...", profileImageUrl = "")
                )
            )
        }
    
        setContent {
            MaterialTheme {
                Column {
                    TopAppBar(title = {
                        Text("Jetpack Compose入门")
                    })
                    ArticleList(articles = articles)
                }
            }
        }
    
    }

    5.实体类:

    /**
     *@author: njb
     *@date:  2021/2/6 16:24
     *@desc:
     */
    data class User(val id: String,
                    val name: String,
                    val profileImageUrl: String
    )

    /**
     *@author: njb
     *@date:  2021/2/6 16:25
     *@desc:
     */
    data class Article( val id: String,
                        val title: String,
                        val url: String,
                        val user: User
    )

    /**
     *@author: njb
     *@date:  2021/2/6 10:55
     *@desc:  列表item适配器
     */
    @Composable
    fun ArticleItem(article: Article) {
        val image = +imageResource(R.mipmap.ic_pic)
        val typography = +MaterialTheme.typography()
    
        Row(modifier = Spacing(16.dp)) {
            Container(modifier = Size(60.dp, 60.dp)) {
                DrawImage(image = image)
            }
            Column(modifier = ExpandedWidth wraps Spacing(right = 16.dp, left = 16.dp)) {
                Text(article.title, style = typography.h6)
                Text(article.user.name, modifier = Spacing(top = 4.dp), style = typography.subtitle2)
            }
        }
    }

    /**
     *@author: njb
     *@date:  2021/2/6 10:55
     *@desc:  列表属性设置
     */
    @Composable
    fun ArticleList(articles: List<Article>) {
        VerticalScroller {
            Column {
                articles.forEach { article ->
                    Card(
                        modifier = Spacing(4.dp) wraps Expanded,
                        shape = RoundedCornerShape(8.dp)
                    ) {
                        ArticleItem(article = article)
                    }
                }
            }
        }
    }

    6.实现的列表截图如下:

    7.例子的源码地址如下:ComposeDemo2: JetPack ComposeDemo2,如有不对的地方欢迎小伙伴们提出宝贵意见,我会及时改正,后面会根据官方文档和demo写几个完整的项目例子,待relsease版本发布后会引入到项目中来。

    展开全文
  • Kotlin——jetpackCompose按钮弹出dialog

    千次阅读 2021-12-26 09:50:39
    package com.example.jetpackcompose import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material.* import androidx....

     

    package com.example.jetpackcompose
    
    import android.os.Bundle
    import androidx.activity.ComponentActivity
    import androidx.activity.compose.setContent
    import androidx.compose.material.*
    import androidx.compose.runtime.Composable
    import androidx.compose.runtime.MutableState
    import androidx.compose.runtime.mutableStateOf
    import androidx.compose.runtime.remember
    import com.example.jetpackcompose.ui.theme.JetpackComposeTheme
    
    class MainActivity : ComponentActivity() {
        private lateinit var openDialog: MutableState<Boolean>
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContent {
                JetpackComposeTheme {
                    Surface(color = MaterialTheme.colors.background) {
                        openDialog = remember {
                            mutableStateOf(false)
                        }
                        addAlterDialog(openDialog = openDialog)
                        addButton(openDialog = openDialog)
    
                    }
                }
            }
        }
    }
    
    @Composable
    fun addButton(openDialog: MutableState<Boolean>) {
        Button(onClick = { openDialog.value = true }) {
            Text(text = "点击弹窗")
        }
    }
    
    @Composable
    fun addAlterDialog(openDialog: MutableState<Boolean>) {
        if (openDialog.value) {
            AlertDialog(
                onDismissRequest = { openDialog.value = false },
                title = { Text(text = "标题") },
                text = {
                    Text(
                        text = "文本内容"
                    )
                }, confirmButton = {
                    TextButton(onClick = { openDialog.value = false }) {
                        Text(text = "确认")
                    }
                }, dismissButton = {
                    TextButton(onClick = { openDialog.value = false }) {
                        Text(text = "取消")
                    }
                })
        }
    }
    
    

    展开全文
  • Jetpack撰写-TextField自动完成 描述 自从Android团队发布了Jetpack Compose的第一个Beta版本以来,我一直在尽最大努力与所有更新保持同步,方法是跟随Android Dev Challenges并尝试使用它来复制我的项目。...
  • 喷气背包 Jetpack组成游乐场
  • 幼犬收养-Jetpack撰写 :camera_with_flash:
  • :optical_disk: Jetpack合成乙烯基 :musical_note: 一个带有乙烯基动画的简单Jetpack Compose原型。 播放/暂停按钮更改播放状态。 播放时无限旋转,并减慢旋转速度,直到暂停。
  • Bloom-JetPack撰写实践 Bloom-JetPack撰写实践
  • android——jetpackCompose居中

    千次阅读 2021-12-22 00:06:15
    垂直布局Column 水平居中: Column( modifier = Modifier.size(300.dp, 200.dp) ) { Text(text = "千里之行,",modifier = Modifier.align(alignment = Alignment.CenterHorizontally)) Text(text = ...

    垂直布局Column

    水平居中:

     Column(
            modifier = Modifier.size(300.dp, 200.dp)
        ) {
            Text(text = "千里之行,",modifier = Modifier.align(alignment = Alignment.CenterHorizontally))
            Text(text = "始于足下",modifier = Modifier.align(alignment = Alignment.CenterHorizontally))
        }

    水平布局Row

    Row(
            modifier = Modifier.size(200.dp,200.dp),            
            horizontalArrangement = Arrangement.Center,//设置水平居中对齐
            verticalAlignment =  Alignment.CenterVertically//设置垂直居中对齐
        ) {
            Text(text = "千里之行,")
            Text(text = "始于足下。")
        }

    展开全文
  • Jetpackcompose中使用列表要是用LazyColumn和item @Composable fun CreateDrawerLayout() { val list = mutableListOf<Student>() for (i in 0..33) { list.add(Student("学生${i}", i)) } ...

    在Jetpackcompose中使用列表要是用LazyColumn和item

    @Composable
    fun CreateDrawerLayout() {
        val list = mutableListOf<Student>()
        for (i in 0..33) {
            list.add(Student("学生${i}", i))
        }
        LazyColumn(modifier = Modifier.fillMaxWidth()) {
            items(list.size) {
                Text(
                    text = "items:姓名:${list[it].name},年龄${list[it].age}岁",
                    fontSize = 18.sp
                )
                Spacer(modifier = Modifier.height(10.dp))
            }
    
            itemsIndexed(items = list) { index: Int, item: Student ->
                Text(
                    text = "itemsIndexed:姓名:${item.name},年龄${item.age}岁",
                    fontSize = 18.sp, modifier = Modifier.clickable {
    
                    })
                Spacer(modifier = Modifier.height(10.dp))
            }
    
            list.forEachIndexed { index, student ->
                item {
                    Text(
                        text = "forEachIndexed:姓名:${student.name},年龄${student.age}岁",
                        fontSize = 18.sp
                    )
                    Spacer(modifier = Modifier.height(10.dp))
                }
            }
    
        }
    }

    展开全文
  • 首先放上一个效果,这里需要特别鸣谢@扔物线大佬,因为我这边使用的颜色,图片都是从大佬的项目中直接拿过来的。原谅我是个白嫖怪~ 在@扔物线大佬的WeCompose项目中,对于底部导航栏的实现是使用Row + Column组合的...
  • Jetpack-Compose

    2021-03-08 18:26:52
    4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' } 创建项目 MainActivity.class package com.example.jetpackcompose ...
  • 撰写记忆偏好 Jetpack Compose库,用于基于DataStore首选项持久地记住状态。 入门 库通过Maven Central分发。 要使用它,您需要在模块build.gradle添加以下依赖build.gradle : dependencies { ...
  • 设计到Jetpack Compose转换器 轻松将设计直接转换为代码。 (不属于任何一个) 该项目包含一个将选定的Figma json发送到localhost:9020的插件,以及一个将此json转换为Jetpack Compose并将剪贴板设置为它的kotlin...
  • Jetpack Compose的常用材质对话框Compose材质对话框当前撰写版本:dev14积分该库的设计在很大程度上受到https://github.com/afollestad/material-dialogs的启发核心核心文档依赖项{...实现“ ...
  • Jetpack Compose 的远程映像 有助于在 Jetpack Compose 中加载图像和从网络显示的库 安装 将此添加到项目级别 build.gradle allprojects { repositories { ... ... } } 然后将此添加到应用程序级别 build.gradle ...
  • 介绍 :dashing_away: 此项目致力于帮助大家更好的理解和使用Jetpack Compose框架,从而提高开发效率 项目会包含很多关于Jetpack Compose的基本使用方法以及注意事项 我们在github page上创建了专门的教程和指导链接...
  • 使用 Jetpack Compose 触控功能在 Canvas 上画出图形。 如果大家有意学习 Android,不妨先从妙趣横生的绘图应用起步。在今天的文章中,我们将共同了解如何使用最新 Android Jetpack Compose 开发一款绘图应用。...
  • Calpose是一款轻巧易用的Calendar渲染器/小部件,适用于Android / Jetpack Compose。 Calpose是一款轻巧易用的Calendar渲染器/小部件,适用于Android / Jetpack Compose。 ! 注意:给定compose的Alpha状态,重要的...
  • Gmail撰写 Gmail撰写 演示版 GmailCompose是一个Android应用程序 :mobile_phone: 用于展示Jetpack Compose,用于在Android中构建声明性UI。 关于 。 这是一个演示应用程序,用于使用行,列,列表等展示Gmail UI。...
  • 写在最前 在之前的文章中,我们学习过Compose 中的 ImageButton。 本篇我们将继续学习 Switch 、 CheckBox 、RadioButton , 这三个控件在 人机交互界面 中也是由来已久。 文中代码均基于 1.0.1版本 ...
  • Jetpack Compose 采坑过程

    2021-03-18 16:02:19
    〇、前言 Google 官方针对 Jetpack Compose 的 Android 开发者挑战赛今天已经公布了第四周也就是最后一周的题目,面对这一新的技术趋势大佬们个个摩拳擦掌,看的我也蠢蠢欲动,学习的过程中发现坑还是不少的,特此...
  • JetPack-Compose - Flutter 动态UI?

    千次阅读 2021-03-18 14:43:50
    一、Flutter-初遇 2018-06月左右入坑Flutter,于是拿出美团和痘印等好看的界面感受了一波Flutter UI和绘制等写了三天的Demo也感受到了Flutter强大,当时匆匆忙忙就写了相关Demo上传了Github。不知不觉Github很多Star...
  • Jetpack-Compose-自定义绘制

    千次阅读 2021-03-10 08:59:38
    上节课我们简单的利用了一下自定义裁剪和自定义就能玩出如下简单案例,效果不错。这节课咋们来看看Compose自定义绘制能不能花里胡哨。 一、Compose自定义 自定义,一个应用的可创造性往往离不开人们的千奇百怪想象...

空空如也

空空如也

1 2 3 4 5 6
收藏数 112
精华内容 44
关键字:

jetpackcompose