具有包含布局的数据绑定变量继承

2024-06-28

我正在学习数据绑定和 mvvm。我有一个问题,我想要一个BaseViewModel.kt包含一些与 UI 相关的变量,例如isLoading旗帜和loadingText。当发出网络请求时,我设置isLoading为 true 并且我的基本视图模型的某些子级应该设置文本。例如对于一个LoginViewModel.kt文本可能是“正在登录”。是否可以将这些变量传递给包含的基本布局?

So a login_activity.xml可能会在其布局中包含此内容:

    <data>
        <import type="android.view.View" />
        <variable
            name="viewModel"
            type="core.sdk.ui.login.LoginViewModel" />
    </data>

<!-- Various click listeners using the viewModel variable -->

    <include
        android:id="@+id/progress_include"
        layout="@layout/progress_bar"
        android:visibility="@{viewModel.isLoading ? View.VISIBLE : View.GONE}"
        bind:viewModel="@{viewModel}"/>

现在我想要我的progress_bar.xml为了美观和通用并使用基本视图模型:

<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="core.sdk.ui.login.LoginActivity">

<data>

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

    <variable
        name="viewModel"
        type="core.sdk.ui.base.BaseViewModel" />

</data>

<LinearLayout
    android:id="@+id/circular_progress"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:gravity="center"
    android:orientation="vertical">

    <android.support.v4.widget.ContentLoadingProgressBar
        style="@style/Widget.AppCompat.ProgressBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/progress_text"
        style="@style/TextAppearance.AppCompat.Subhead"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fontFamily="sans-serif-thin"
        android:gravity="center_horizontal"
        android:text="@{viewModel.loadingText}"
        android:textStyle="italic"
        tools:text="loading..." />
</LinearLayout>

我得到的错误是这样的

****/ data binding error ****msg:Cannot find the setter for attribute 'bind:viewModel' with parameter type core.sdk.ui.login.LoginViewModel

如果这不可能,我能看到的唯一替代方法是删除包含并将进度条+文本复制并粘贴到每个视图模型中,这不是很好。


我认为你应该将它投射到绑定中:

<include
    android:id="@+id/progress_include"
    layout="@layout/progress_bar"
    android:visibility="@{viewModel.isLoading ? View.VISIBLE : View.GONE}"
    bind:viewModel="@{(core.sdk.ui.base.BaseViewModel)viewModel}"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有包含布局的数据绑定变量继承 的相关文章

  • Android v <= ICS 连续语音识别 ERROR_NETWORK_TIMEOUT

    我通过以下方式创建了一个连续语音识别 Android 应用程序这个线程 https stackoverflow com questions 14940657 android speech recognition as a service o
  • getWritableDatabase() 抛出空指针异常

    我有一个具有以下代码的服务类 public class ReminderService extends WakeReminderIntentService private static final String TAG ReminderSe
  • Eclipse 中使用 Phonegap Android 开发的 HTML 表单输入

    我有一个奇怪的问题 我最近使用 Phonegap 和 Xcode 开发了一个 ios 应用程序 一切顺利 他们在应用程序商店中 一切正常 其中一个元素是用 HTML 编写的简单电子邮件表单 它看起来像这样
  • 在android中获取可移动SD卡路径

    我如何在android中获取extSdcard路径 有 2 个存储 第一个是所有手机都有的外部存储 但第二个存储称为可移动存储 微型 SD 卡 我想在android中获取micro SD卡的路径 这怎么可能 从 KitKat 开始 您可以访
  • 使用 Android 获取 Firebase 实时数据库中最后一个节点的数组元素

    如下图所示 我有一个数据库 表 名为fridge有一个孩子叫food food是一个可以包含一个或多个元素的数组 我想访问最后一个节点并获取食物元素并将它们添加到列表中 但我不知道该怎么做 感谢您的帮助 您可以按照docs https fi
  • 使用WebView登录Twitter

    您好 我使用浏览器完成了 Twitter 登录 Code TwitLoginActivity java 主要活动 package com app twitlogin import twitter4j Twitter import twitt
  • 如何在Android Studio中查看所有TODO任务?

    如何在 Android Studio 中打开一个视图 其中包含我使用创建的所有任务 TODO评论会显示吗 您可以在左下角菜单栏找到此 视图 称为待办事项 or 安卓工作室 转到 View gt Tool Windows gt TODO 显示
  • 可绘制 Android 上的颜色叠加

    我一直在这里关注这个教程中 对角线切割视图 https cdn images 1 medium com max 800 1 IIPRX4i4cOAdxAMeGpY92w png获得对角线视图效果
  • Service 构造函数中出现 NullPointerException

    在我的 Android 项目中 我有一个Service public class MyService extends Service I defined a explicite contructor public MyService Nul
  • Android IllegalStateException:无法执行活动的方法

    我是安卓新手 我想做的是当我按下按钮并将字符串写入文本字段时通过网络服务获取字符串 清单 xml
  • 使用材料设计在工具栏中滑动选项卡

    我一直在学习使用材料设计使用滑动选项卡这个帖子 http www exoguru com android material design navigation android sliding tabs with material desig
  • ImageView 的 xml 中的 android:contentDescription="@string/desc" 是什么?

    我添加了一个imageView in GraphicalLayout但它在我的真实设备上看起来与 AVD 上不同 我发现我需要添加contentDescription在布局中 xml 但是当我添加 contentDescription st
  • HttpClient 不在 Galaxy s2 上存储 cookie

    我正在尝试使用此代码从服务器获取数据 DefaultHttpClient httpClient new DefaultHttpClient httpClient getParams setParameter CoreProtocolPNam
  • 限制用户在 Mapview 上可以到达的区域

    我正在使用地图视图的定制版本 OSMDroid 版本 我在其中使用自定义图块 我只希望用户能够查看我拥有自定义图块的区域 有没有办法设置边界纬度 以便当他们平移地图时不会超出这些边界 Update 我知道这是一个老问题 但 osmdroid
  • Android API 14 - 网络操作/AsyncTask

    我最近提出了一个基于使用 POST 数据进行 HTTP 请求的问题 在这里找到 Android API 14 将数据发布到 HTTP https stackoverflow com questions 8464204 android api
  • BillingClient 始终返回 SERVICE_DISCONNECTED

    所以我有一个计费客户端 我用它实例化 billingClient BillingClient newBuilder this setListener this build 然后我打电话 billingClient startConnecti
  • 融合位置有时会停止

    我一直在开发一个跟踪用户位置的应用程序 为此 我使用了谷歌播放服务位置模块 又名融合位置 总而言之 一切正常 但有时 完全随机 我根本不再收到来自谷歌位置服务的位置更新 我的意思是 我的应用程序工作正常 但没有位置更新 不仅如此 如果我启动
  • 语音识别器在第一个结果后听不到声音

    我在Android中使用SpeechRecognizer和RecognizerIntent来实现语音识别 我的目标是在语音识别器在屏幕上显示结果后重新开始收听语音 为此 我使用以下代码 问题是 第一次运行良好并显示结果 但在第二次开始监听
  • Android:“无法初始化可视化引擎”

    我三天前开始为 Android 编程 今天我想使用 android Api 中的一些类来做一些更困难的事情 我找到了 Visualizer 类 第一次尝试时遇到了问题 我在不同论坛上读到很多帖子 人们有同样的问题 无法初始化可视化引擎 我将
  • Android 上方向改变时如何避免重新启动 Activity

    我正在创建一个 Android 应用程序 在其中在画布上绘制视图 当设备的方向改变时 活动将重新启动 我不想这样 如何避免在方向改变时重新启动 Activity 有多种方法可以做到这一点 但正如给定的here https stackover

随机推荐

  • YouTube 数据 API 返回不一致且重复的结果

    关于 YouTube 数据 API 结果不一致的问题有很多 1 https stackoverflow com questions 50516796 inconsistent results from youtube data api an
  • 什么是圈复杂度?

    我时常看到的一个术语是 环复杂度 在这里 我看到了一些关于 如何计算 X 语言的 CC 或 如何用最少的 CC 来完成 Y 的问题 但我不确定我是否真的理解它是什么 On the NDepend 网站 http www ndepend co
  • React 中的 useCallback 是什么以及何时使用它?

    我已经阅读了几篇关于useCallback and useMemo关于何时使用和何时不使用 但我大多看到过contrived代码 我在查看我公司的代码时发现有人这样做了 const takePhoto useCallback gt laun
  • 在空心方形层内生成随机均匀分布点的 Pythonic 方法

    假设我们有一个尺寸为 n 的空心方形薄片 也就是说 我们有一个 nxn 正方形 其中删除了 k l 矩形 1 我为 numpy 编写了这段代码 但它至少有 2 个问题 我必须丢弃大约 1 9 的所有生成点 并且删除 numpy array
  • 如何将 C 静态库公开到 .Net?

    将 C 函数公开给 C 和 Net 有哪些步骤 我想在 C C 和 Net 中为 32 位和 64 位构建使用相同的函数名称 我发布这个问题和答案是因为我没有在任何地方找到这些技术的记录 步骤是 将 C 函数公开为 C 静态库 lib Us
  • 将所有 PHP 错误输出到数据库而不是 error_log

    是否可以将所有 PHP 错误写入 MySQL 而不是标准的 error log 文件 我想如果我从头开始编写自己的错误处理程序 这是可能的 但我有很多遗留代码 理想情况下我只需进行 1 个全局更改即可 这可以做到吗 我认为如果不构建自己的错
  • 在托管代码中,如何实现良好的引用局部性?

    由于RAM似乎是新磁盘 http www infoq com news 2008 06 ram is disk 并且由于该声明还意味着现在对内存的访问被认为是缓慢的 类似于磁盘访问一直以来的情况 因此我确实希望最大化高性能应用程序的内存中的
  • 用于添加外部链接的 Vim 插件

    现在 这可能是显而易见的事情 已经解决并为每个人所知 但我只是想到了它 所以怜悯 Is there a Vim plugin for when writing markdown texts that enables you to inser
  • python 线程:内存模型和可见性

    python 线程是否会像 Java 一样暴露内存可见性和语句重新排序的问题 由于我找不到任何对 Python 内存模型 或类似内容的引用 尽管事实上很多人都在编写多线程 Python 代码 但我猜测这些陷阱在这里不存在 不volatile
  • 如何检查用户输入的数字不大于 LLONG_MAX 或低于 LLONG_MIN?

    我想检查用户输入的数字是否大于或小于告知值 我知道关于环礁功能 http en cppreference com w c string byte atoi但它似乎没有特别帮助 基于未定义值的检查看起来不太令人信服 我还知道我可以检查用户输入
  • QML 缩放不适用于非整数缩放因子

    我正在使用 QML 编写一个应用程序 当我按非整数因子缩放 GUI 时遇到麻烦 根据文档 https doc qt io qt 5 highdpi html Qt AA EnableHighDpiScaling应该启用与设备无关的像素 因此
  • HTML5 全屏 Web 应用程序:没有浏览器栏

    我正在为移动设备创建 HTML5 Web 应用程序 并被要求隐藏浏览器导航栏 后退和前进按钮 前面这里有错字 我怎样才能做到这一点 我想我应该能够使用 Phone Gap 来实现这一目标 但我想知道 普通 网络应用程序是否有可能隐藏浏览器栏
  • gitignore 中的文件

    我在生产服务器中有一个带有 Rails 应用程序的存储库 在存储库中有 gitignore 文件 config database yaml 每个开发客户端都有一个具有不同 config database yaml 的克隆存储库 我的问题是这
  • 有谁知道有一个很好的库可以将一个人的名字映射到他或她的性别吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在寻找一个图书馆或数据库 可以根据一个人的名字或昵称猜测他或她是男性还是女性 就像是 john gt M mary gt F al
  • Spring Boot Rest API @RequestBody 中的 @Valid 与 @Validated [重复]

    这个问题在这里已经有答案了 我拥有开发 REST API 的 NET 背景 现在使用 spring boot 从事 java REST 项目 首先 我在控制器 RequestBody 上的验证停止工作 在尝试修复它时 我看到了不同的实施方法
  • TypeORM:将不相关的实体映射到数组属性中

    我有以下内容无关TypeORM 实体 由于各种原因 我不能在它们上使用一对多关系 Entity export class Book PrimaryGeneratedColumn id number Column name string En
  • 将 python 字节类型更改为字符串

    我正在使用 python 来使用 stackoverflow API 我运行以下命令 f urllib request urlopen http api stackoverflow com 1 0 stats d f read d 的类型是
  • Swift 中可选的闭包属性

    如何在 Swift 中将可选闭包声明为属性 我正在使用这段代码 var respondToButton sender UIButton gt Bool 但编译器抱怨该属性未在初始化程序结束时初始化 我相信我可以通过将 var 声明为可选来解
  • Cordova Ionic:启用 Android 表情符号软键盘

    使用 Cordova Ionic Android 您可以通过以下方式调用搜索键盘
  • 具有包含布局的数据绑定变量继承

    我正在学习数据绑定和 mvvm 我有一个问题 我想要一个BaseViewModel kt包含一些与 UI 相关的变量 例如isLoading旗帜和loadingText 当发出网络请求时 我设置isLoading为 true 并且我的基本视