gpt4 book ai didi

android - 在数据绑定(bind)中查看依赖于 CheckBox 的可见性

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:33:54 25 4
gpt4 key购买 nike

我想根据 CheckBox 选中状态设置 View 可见性。就像我们在 preference.xml 中做的那样。

我现在正在做

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
>

<data>

<import type="android.view.View"/>

<variable
name="isScheduleChecked"
type="java.lang.Boolean"/>

<variable
name="activity"
type="com.amelio.ui.activities.ActivityCart"/>

</data>

<LinearLayout
style="@style/llDefault"
android:layout_height="match_parent"
android:orientation="vertical"
>

<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onCheckedChanged="@{()-> isScheduleChecked}"
android:text="Checkbox"/>

<LinearLayout
style="@style/llDefault"
android:padding="@dimen/space_small"
android:visibility="@{isScheduleChecked ? View.VISIBLE : View.GONE, default = gone}"
>

</LinearLayout>

</LinearLayout>

</layout>

这是行不通的。我认为 android:onCheckedChanged="@{()-> isScheduleChecked}" 这一行不起作用。我做错了什么?有些人告诉我实现它的最佳方法。

目前我正在通过我在 java 代码中的 Activity 更改 isScheduleChecked,例如 binding.setIsScheduleChecked(true/false); 但我不会为了设置可见性而在 java 类中编写代码。

最佳答案

我以前不知道最简单的方法。

数据绑定(bind)中可以引用id。无需采用另一个变量。

    <CheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Checkbox"/>

<LinearLayout
style="@style/llDefault"
android:padding="@dimen/space_small"
android:visibility="@{checkbox.isChecked() ? View.VISIBLE : View.GONE, default = gone}"
>

</LinearLayout>

可能导致问题的原因

  1. Id 始终以 camelCase 生成。如果 id 是 check_box 那么您将使用 checkBox.isChecked()
  2. 您必须在布局中导入 View 才能使用它 View.VISIBLE

    <data>
    <import type="android.view.View"/>
    </data>

如果您有任何其他问题,那么您可以发表评论。

关于android - 在数据绑定(bind)中查看依赖于 CheckBox 的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50073150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com