问题标签 [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.
android - 如何在 buildgradle.kts 中设置 ViewBinding?
我可以通过以下方式轻松dataBinding
设置buld.gradle.kts
:
但我似乎找不到viewBinding
.
android - 跨动态功能的 Android ViewBindings
碰巧我有一个主应用程序模块
构建.gradle
AdroidManifest.xml
使用我在整个应用程序 eq 中使用的一些常见布局:app/res/error_view.xml
我有动态功能文件
构建.gradle
AdroidManifest.xml
myfeature_fragment.xml
MyFeatureFragment.kt
问题来了。当我尝试访问binding.errorView
AS 时显示错误Cannot access class 'com.mydomain.testproject.myFeature.databinding.ErrorViewBinding'. Check your module classpath for missing or conflicting dependencies
奇怪的是,当我检查生成的MyFeatureFragmentBinding
类时,它包含以下内容
所以我想 AS 知道的比它对我显示的要多。此外,我在主模块生成的类中发现了原始类ErrorViewBinding
和 OFC,它从那里完美地工作。
有人设法从另一个功能模块中引用了一个通用布局?
或者如何强制生成的公共视图绑定的类型?
android - ViewBinding - 包含的布局绑定导致未解析的引用
我正在我的一个片段中实现 ViewBinding。该片段包含如下布局:
我遵循了这个答案,但它也不起作用。
为片段生成的视图绑定类在内部具有绑定,但是,属性的类型是View
. 当我然后引用View
使用binding.lSudfDetails
类型是LayoutSignUpDetailFieldsBinding
. 这种类型的来源我无法解决,因为没有生成具有该名称的类,但是我希望它会为其分配正确的绑定类型。这是FragmentSignUpDetailsBinding.java
.
然而,绑定都设置正确,它允许我在嵌套布局中引用视图,但是当我开始构建时,我得到了未解决的引用错误。当我这样引用它们时,Lint 不会抱怨:
binding.lSudfDetails.etSudfDob
但是,编译器确实会失败,并出现诸如此类的错误
未解决的参考:etSudfDob
绑定本身是根据Android 文档创建的:
该tvSudfWelcome
绑定适用于它不喜欢的嵌套绑定。
android - ViewBinding - 不同风格的布局资源
我的风格包含与我的main
源集中相同的布局资源。这样它就可以用特定于风味的那一种来覆盖主要的那一种。我在很多地方都这样做过,在我介绍ViewBinding
. 为了准确起见,布局是“包含”在片段中的嵌套布局。
这是结构:
til_sudf_first_name
在我的主要资源中没有的特定于风味的布局资源中,我有一个视图,其 ID 为。这是有意的。View
通过在运行此构建变体时查看生成的源,我可以在我的绑定类中看到这是“绑定”的。
protected
现在实际的绑定发生在“基”类中,并使用可见性修饰符与子类共享,如下所示:
问题是detailsBinding
不包含我需要的视图,即使它存在于生成的类中。
此外,另一个奇怪的事情是,即使main
布局文件中的视图不在风味特定的布局文件中,它们仍然包含在生成的布局文件中。
我想要做的甚至可能吗?我可以使用的解决方法是像我一样对这个实例使用 kotlin 的合成视图处理,但我试图使用推荐的方法
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'
android - 使用 DataBinding 从 EditText wigdet 获取文本
我在我的项目中使用数据绑定。我了解将数据绑定到某个模型,但现在我想调用一个隐式意图以在此布局中打开谷歌地图。我称之为隐式意图的代码位于 LinearLayout 中。我不知道如何实现这一点,有人可以给我任何想法......我想在这个上使用 ViewBinding,但我不确定这是否可能。请帮忙?我没有提到我正在使用 Java。
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
java - RecyclerView适配器类中Android View Binding的正确方式是什么?
这是我在RecycleView
适配器类中使用的代码。我不知道这是使用视图绑定的正确方法。如果您有更好的解决方案,请回答我。谢谢你。
另外,我想知道在同一个班级中使用是否R.layout.layout_name
正确ViewBinding
。
android - 使用视图绑定显示空白屏幕
我正在我的新应用程序中试验视图绑定。今天突然间,当我运行该应用程序时,它显示空白屏幕而不是 UI。如果我删除绑定并使用 setContentView,它可以工作!知道为什么会这样吗?
代码:build.gradle
主要活动