当前位置: 首页 > 知识库问答 >
问题:

在组合中禁用onClick后的视图

濮阳宜
2023-03-14

我想禁用箭头图像后,它被点击,并有选项使它再次启用后,另一个事件。

Image(
                painterResource(R.drawable.arrow_back_btn),
                contentDescription = "back",
                modifier = Modifier
                    .padding(start = 16.dp, top = 16.dp)
                    .clickable(onClick = onArrowClick)
                    .layoutId(R.id.arrowBackBtn),
                onArrowClick = {enabled = false}

            )

最后一行是我临时写的-onArrowClick被识别,但'enabled'不被识别

共有1个答案

郎德馨
2023-03-14

使用内部状态来定义组合文件是否可单击。当enabledtrue时,图像可单击;当false时,图像不可单击。

类似于:

var enabled  by rememberSaveable { mutableStateOf(true) }

Image(
    painterResource(R.drawable.ic_add_24px),
    contentDescription = "back",
    modifier = Modifier
        .padding(start = 16.dp, top = 16.dp)
        .clickable(
            enabled = enabled,
            onClick = { enabled = false } 
        )
        .layoutId("arrow")
)

要再次启用,只需设置enabled=true。例如:

Button(onClick = {enabled = true}){
    Text("Enable again")
}
 类似资料:
  • 如何禁用swing组合框中的项目?我将这些项添加为代码,因为在我的项目中,我们无法从设计中手动添加它们。我想禁用项目,例如如果从swing Month组合框中选择了April,则项目31也应禁用,并显示警告消息,因为四月有30天,而不是31天。 {

  • 问题内容: 我尝试使用创建在一个列中具有两个值的视图,并且该视图已成功创建,但是当我尝试从中选择所有视图时,出现此错误: 我尝试研究此操作和串联运算符,但令我沮丧的是没有找到任何帮助。这是我用来创建视图和选择的代码。 问题答案: Oracle中的串联运算符是双管道。所述用于添加数字加在一起,因此,该错误。 该视图已成功创建,因为Oracle在创建数据时不会评估数据;仅确保它可以编译。

  • 我想重写我正在使用的开源组件的样式,但是我能找到的禁用视图封装的唯一方法是在组件的装饰器上。当然,使用第三方模块意味着我不能为它编辑源代码。不然怎么做? 编辑 我知道这个/深度/风格的建议。我想做的是用bootstrap 4中的样式覆盖第三方组件中的表样式。自定义组件有一个.table类应用于它,但是使用视图封装,boostrap 4类无法访问它。 我只是想知道,是否有一种方法可以完全禁用视图封装

  • 问题内容: 我有一个 同时 设置和属性的锚点。如果单击并启用了Javascript,我希望它 仅 执行和忽略。同样,如果禁用或不支持Javascript,我希望它遵循URL并忽略。以下是我正在执行的示例,该示例将执行JS并并发地执行链接(通常是执行JS,然后页面会更改): 最好的方法是什么? 我希望有一个Java脚本的答案,但是我会接受任何可以使用的方法,只要它可以工作,尤其是可以用PHP完成的方

  • 问题内容: 我想要一个具有组合的表作为其列标题之一。我已经从这个问题中发现Table是不可能的: 列标题SWT中的控件(组合,广播,文本) 有办法解决吗?我尝试了TableViewer,但也没有找到使用它的方法。有什么办法可以实现? 问题答案: 您可以使用常规控件在表格上方的区域中创建自己的列标题。 然后,您将需要调整这些控件的大小以匹配表列的大小。一种方法是使用表布局类扩展jface 并覆盖每次

  • 我开发了一个简单的用户管理系统。在用户登录时,我设置了数据库会话。我也会在注销时销毁它们。我的缓存也被关闭。即使当我点击浏览器上的后退按钮时,我可以看到我的仪表板,当我点击任何链接时,它应该将我重定向到登录,但它首先显示仪表板,这是一个bug。 登录中的控制器。php: 在match.php中查看页面: 当我点击后退按钮时,它会再次显示登录页面。