首页 > 其他分享 >5.13

5.13

时间:2024-05-13 23:30:16浏览次数:27  
标签:Modifier form onLoginPasswordChange text viewModel 5.13 modifier

当在主屏幕创建工厂时

fun LoginScreen(
    viewModel: LoginViewModel = viewModel(factory = LoginViewModelProvider.Factory)
)

下面这段代码要封装在一个函数中 并以另一个函数 作为一个中介
置于为什么 还不知道 是慢慢 试出来的

fun LoginContent(
    form: LoginAndRegistForm,
    onLoginUsernameChange: (String) -> Unit,
    onLoginPasswordChange: (String) -> Unit
) {
    Column(
        modifier = Modifier.padding(8.dp),
        verticalArrangement = Arrangement.Center,
        horizontalAlignment = Alignment.CenterHorizontally
    ) {
        OutlinedTextField(
            enabled = true,
            modifier = Modifier,
            label = { Text(text = stringResource(id = R.string.username)) },
            value = form.loginUsername,
            //输入的值发生变化时
            onValueChange = { onLoginUsernameChange(it) }
        )
        OutlinedTextField(
            enabled = true,
            modifier = Modifier,
            label = { Text(text = stringResource(id = R.string.password)) },
            value = form.loginPassword,
            //输入的值发生变化时
            onValueChange = { onLoginPasswordChange(it) }
        )
    }
}

用下面的函数作为中介

@Composable
fun LoginBody(
    viewModel: LoginViewModel
) {
    LoginContent(
        form = viewModel.form.value,
        onLoginUsernameChange = viewModel::onLoginUsernameChange,
        onLoginPasswordChange = viewModel::onLoginPasswordChange
    )

}

放到主屏幕

 Column(modifier = Modifier.padding(innerPadding)) {
                LoginBody(viewModel)
                Row {
                    Button(onClick = { }) {
                        Text(text = stringResource(id = R.string.login))
                    }
                    Spacer(modifier = Modifier.padding(horizontal = 15.dp))
                    Button(onClick = { expanded = false }) {
                        Text(text = stringResource(id = R.string.regist))
                    }
                }
            }

标签:Modifier,form,onLoginPasswordChange,text,viewModel,5.13,modifier
From: https://www.cnblogs.com/258-333/p/18190299

相关文章

  • 高一下三调模拟赛5.13(附关于二分图匈牙利建边的详细思考)
    前言注:本篇为知识性内容,A题附详解关于匈牙利算法求最大独立子集难以理解的建边问题的思考,若有不当之处感谢指出。暂时只写了A篇题解,以供帮助大家理解相关问题,剩余题解会进行补充。又是小集训的一周,总要伴随着模拟赛...还是五道题目:A.攻击装置B.循环C.漫步D.穿越E.结......
  • 5.13 模拟赛题解(没写完)
    T1P4304[TJOI2013]攻击装置快进到HZOI2023超越HZOI2020(人均场切了紫)考虑将棋盘黑白染色成这个样子容易发现相同颜色的点直接一定没有冲突,满足二分图的性质,需要求出最小点覆盖,所以直接按冲突建好双向边,从\(1\)到\(n^2\)节点跑最大匹配即可。设求出的最大匹配为\(......
  • 云原生周刊:Kubernetes Grafana 看板更新 | 2024.5.13
    开源项目推荐ChartTestingChartTesting是用于测试Helm图表的工具。它旨在用于对拉取请求进行lint和测试。它会自动检测针对目标分支更改的图表。ClusterpediaClusterpedia是一个多集群的百科全书,用于同步、搜索和简单控制多集群资源。Clusterpedia可以与多个集群同......
  • 力扣1553 2024.5.13
    原题网址:此处为链接个人难度评价:1700分析:虽然不知道为什么贪心不对,但总之贪心不对。数据如此大也难以DP,那么只有搜索了。显然有一眼可得的搜索记忆化:记忆当只剩下k个果时还需要几天。值得一提的是,本代码实际上可能并不是一个正解代码,其可能无法在整数域上保证所有答案正确,但在......
  • Proxmox VE 8.1 Kernel 6.5.13-5-pve ,无法支持核显 SR-IOV 的问题
    我的之前的博客《利用显卡的SR-IOV虚拟GPU技术,实现一台电脑当七台用》介绍了ProxmoxVE7.x上启用核显虚拟化的方法。并给出了两个脚本,快速启用核显的SR-IOV。该脚本在PromoxVE7.x和8.x都做了测试。近期重新在ProxmoxVE8.1上部署,发现无法正常工作。 经过检查发现......
  • 2045:【例5.13】蛇形填数
    1#include<bits/stdc++.h>2usingnamespacestd;3intmain(){4intn;5cin>>n;6inta[n][n],i=0,j=n-1,t=1;7memset(a,0,sizeof(a));8a[i][j]=1;9while(t!=n*n){10while(a[i+1][j]==0&&i+1&l......
  • 2045:【例5.13】蛇形填数
    #include<iostream>usingnamespacestd;intmain(){ intn; cin>>n; intb=1,i=0,j=n-1,a[n][n]; for(inti=0;i<n;i++){ for(intj=0;j<n;j++){ a[i][j]=0; } } a[i][j]=1; while(b<n*n){ while(a[i+1][j]==0&&i+1<n){......
  • 算法训练day36 1005.134.135.
    算法训练day361005.134.135.1005.K次取反后最大化的数组和题目1005.K次取反后最大化的数组和-力扣(LeetCode)题解代码随想录(programmercarl.com)将数字按绝对值大小排序优先将绝对值最大的负数取反剩余步骤将最小非负数取反注意数组大小顺序,以及处理剩余......
  • 5.13 汇编语言:仿写For循环语句
    循环语句(for)是计算机编程中的一种基本控制结构,它允许程序按照指定的次数或范围重复执行一段代码块。for循环在处理需要进行迭代操作的情况下非常有用,它使得程序可以更加方便地控制循环的次数。一般来说,for循环由三个部分组成:初始化部分、条件表达式和更新部分,以及一个需要重复执行......
  • 调皮哥的资料清单 | 请各位雷达er,好生收藏~(截止5.13日前)
    本文编辑:@调皮连续波,保持关注调皮哥,获得更多学习内容和建议!一、雷达经典理论书籍1.雷达入门书籍(1)学雷达怎么入门?雷达专业必备的理论书籍(PDF电子版,后台回复可下载,调皮哥强烈推荐)!2.雷达进阶书籍(1)调皮哥:再给大家分享一些雷达相关的书籍(PDF免费下载)(2)知乎答疑|雷达信号处理中的距离维F......