问题标签 [android-viewbinding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1012 浏览

android - ViewBinding 与 DataBinding 有冲突

在我的项目中,ViewBinding在编译时与DataBinding有冲突。 在此处输入图像描述

LayoutListCoverMaskBinding 是 ViewBinding 的子类,但参数需要一个 DataBinding 类型 在此处输入图像描述

我的布局文件: 在此处输入图像描述

DataBinding 和 ViewBinding 都启用

有人可以澄清我为什么会发生这种情况以及是否有办法解决它?

0 投票
3 回答
1135 浏览

android - 如何在 buildgradle.kts 中设置 ViewBinding?

我可以通过以下方式轻松dataBinding设置buld.gradle.kts

但我似乎找不到viewBinding.

0 投票
1 回答
1102 浏览

android - 跨动态功能的 Android ViewBindings

碰巧我有一个主应用程序模块

构建.gradle

AdroidManifest.xml

使用我在整个应用程序 eq 中使用的一些常见布局:app/res/error_view.xml

我有动态功能文件

构建.gradle

AdroidManifest.xml

myfeature_fragment.xml

MyFeatureFragment.kt

问题来了。当我尝试访问binding.errorViewAS 时显示错误Cannot access class 'com.mydomain.testproject.myFeature.databinding.ErrorViewBinding'. Check your module classpath for missing or conflicting dependencies

奇怪的是,当我检查生成的MyFeatureFragmentBinding类时,它包含以下内容

所以我想 AS 知道的比它对我显示的要多。此外,我在主模块生成的类中发现了原始类ErrorViewBinding和 OFC,它从那里完美地工作。

有人设法从另一个功能模块中引用了一个通用布局?
或者如何强制生成的公共视图绑定的类型?

0 投票
2 回答
3989 浏览

android - ViewBinding - 包含的布局绑定导致未解析的引用

我正在我的一个片段中实现 ViewBinding。该片段包含如下布局:

我遵循了这个答案,但它也不起作用。

为片段生成的视图绑定类在内部具有绑定,但是,属性的​​类型是View. 当我然后引用View使用binding.lSudfDetails类型是LayoutSignUpDetailFieldsBinding. 这种类型的来源我无法解决,因为没有生成具有该名称的类,但是我希望它会为其分配正确的绑定类型。这是FragmentSignUpDetailsBinding.java.

然而,绑定都设置正确,它允许我在嵌套布局中引用视图,但是当我开始构建时,我得到了未解决的引用错误。当我这样引用它们时,Lint 不会抱怨:

binding.lSudfDetails.etSudfDob

但是,编译器确实会失败,并出现诸如此类的错误

未解决的参考:etSudfDob

绑定本身是根据Android 文档创建的:

tvSudfWelcome绑定适用于它不喜欢的嵌套绑定。

0 投票
1 回答
1799 浏览

android - ViewBinding - 不同风格的布局资源

我的风格包含与我的main源集中相同的布局资源。这样它就可以用特定于风味的那一种来覆盖主要的那一种。我在很多地方都这样做过,在我介绍ViewBinding. 为了准确起见,布局是“包含”在片段中的嵌套布局。

这是结构:

til_sudf_first_name在我的主要资源中没有的特定于风味的布局资源中,我有一个视图,其 ID 为。这是有意的。View通过在运行此构建变体时查看生成的源,我可以在我的绑定类中看到这是“绑定”的。

protected现在实际的绑定发生在“基”类中,并使用可见性修饰符与子类共享,如下所示:

问题是detailsBinding不包含我需要的视图,即使它存在于生成的类中。

此外,另一个奇怪的事情是,即使main布局文件中的视图不在风味特定的布局文件中,它们仍然包含在生成的布局文件中。

我想要做的甚至可能吗?我可以使用的解决方法是像我一样对这个实例使用 kotlin 的合成视图处理,但我试图使用推荐的方法

0 投票
1 回答
1024 浏览

android - ViewBinding 在第二个屏幕中不起作用[错误:找不到符号导入 com.example.demoapp.databinding.DragAndDropBinding]

基本上我有一个带有两个屏幕的应用程序。屏幕一和屏幕二。在第一个屏幕中,我的意思是在 MainActivity viewBinding 工作正常。但是在特定按钮上单击它将重定向到第二个屏幕。现在有问题了。错误按摩是 -

error: cannot find symbol import com.example.demoapp.databinding.DragAndDropBinding;

但在第一个屏幕上它工作正常。

MainActivity[FirstScreen]

ActivityMain.xml 文件

和 DragAndDropActivity[第二屏]

拖放.xml

build.gradle[应用程序]

Android Studio 版本 3.6.1 和 gradle 插件classpath 'com.android.tools.build:gradle:3.6.1'

0 投票
3 回答
475 浏览

android - 使用 DataBinding 从 EditText wigdet 获取文本

我在我的项目中使用数据绑定。我了解将数据绑定到某个模型,但现在我想调用一个隐式意图以在此布局中打开谷歌地图。我称之为隐式意图的代码位于 LinearLayout 中。我不知道如何实现这一点,有人可以给我任何想法......我想在这个上使用 ViewBinding,但我不确定这是否可能。请帮忙?我没有提到我正在使用 Java。

0 投票
0 回答
134 浏览

android - Android studio 3.6 无法解析视图绑定生成的符号

我正在实现视图绑定,但我遇到了无法解析某些符号的问题。对于某些视图,IDE 会写信给我:Cannot resolve symbol.

活动:ActivityMain

布局activity_main.xml

当我找到生成的文件时
/home/XXX/android-projects/XXX/app/build/generated/data_binding_base_class_source_out/debug/out/XX/XXX/XXX/databinding/ActivityMainBinding.java::

所有视图都正确生成。构建没问题,我可以在真实设备上运行项目。但 Android Studio 仍然给我写信:Cannot resolve symbol.

Android Studio 3.6.3,
Android gradle 插件 3.6.3,
Gradle:测试:5.6.4 - 6.3

我试过了:

  • 清理项目,重建,
  • 使缓存无效并重新启动,
  • 导入项目
  • 删除.idea.gradle项目目录
  • 删除目录/home/XXX/.gradle并打开项目
  • 在 Android Studio 4.0-beta1 和 4.1-canary2 中打开项目

问题已解决我在布局中
有注释 ( ) 并且无法正常工作。我不为什么?有人可以验证吗?<!--&&-->viewBinding

0 投票
5 回答
15981 浏览

java - RecyclerView适配器类中Android View Binding的正确方式是什么?

这是我在RecycleView适配器类中使用的代码。我不知道这是使用视图绑定的正确方法。如果您有更好的解决方案,请回答我。谢谢你。

另外,我想知道在同一个班级中使用是否R.layout.layout_name正确ViewBinding

0 投票
1 回答
675 浏览

android - 使用视图绑定显示空白屏幕

我正在我的新应用程序中试验视图绑定。今天突然间,当我运行该应用程序时,它显示空白屏幕而不是 UI。如果我删除绑定并使用 setContentView,它可以工作!知道为什么会这样吗?

代码:build.gradle

主要活动