问题标签 [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 - Android 多个 Progressbar 实例未正确更新
我有一个自定义视图,其中有一个进度条。自定义视图有一个进度条,标题和文本进度为“1/5”。我在几个地方使用了这个 CustomView (ProgressBadgeWidget),包括在我的项目布局中的两次 RecyclerView (item_levels.xml - 为此简化):
ProgressBadgeWidget 的 xml 布局如下:
很简单,如前所述。主要部分是 EZColorProgressBar,它是 ProgressBar 的子类,仅提供更改条形颜色的方法以及设置进度和最大值的方法:
我在几乎所有的 Fragment 上都使用 ProgressBadgeWidget 和 EZProgressBar。当我在片段之间移动并向后导航时,进度条并不总是正确显示它们的数字,即第一次 0/5 将正确显示,然后导航到使用此 EZProgressBar 的其他页面并向后导航将显示 1/5,即使文本有 0/5。
之后:数据模型支持进度条正确(从0/5可以看出是正确的)。看起来它正在应用另一个进度条中的 3/11
发生这种情况时,它实际上将不正确的进度条编号应用于布局中的所有进度条(即 recyclerview 适配器中 item_level 的所有项目中的每个进度条,甚至在单独的片段中,因此它不与 recyclerview 绑定。)但同样所有文本“x/x”的显示正确。
我试过使用 kotlin 合成绑定和谷歌视图绑定。感觉就像进度条的单独实例(它们是分开的,因为我打印了哈希码)它们指向同一个进度条,因为它正在搜索基于 ID 的视图。ProgressBadgeWidgets 具有唯一的 ID,但它们嵌套的进度条具有相同的 ID。
有没有人遇到过这样的问题和/或专门针对 Android 进度条的问题?
android - Android ViewBinding 无法渲染 LinearLayout 配置
ViewBinding 实现无法呈现LinearLayout
在我的代码中使用的布局配置,而相同的布局适用于旧的技术findViewById()
我已经设置了 gradle 以使用 ViewBinding
以下是使用LinearLayout
activity_main.xml
对应的 Kotlin 类包括绑定实例及其根视图传递给setContentView()
MainActivity.kt
虽然布局编辑器呈现应用程序的正确对齐方式,但一旦将其启动到模拟器上,布局配置(例如使用ofcenter_vertical
设置的对齐方式)将被忽略。layout_gravity
LinearLayout
ViewBinding 的实现方式是否不正确或缺失?
android - 如何使用 ViewBinding 为 RecyclerView 创建 BaseAdapter?
我想使用 ViewBinding 为 RecyclerView 创建一个 BaseAdapter 类,但是当我尝试以下代码时:
我收到一个错误:
java.lang.IllegalStateException:创建时不得附加 ViewHolder 视图。确保您没有将“true”传递给 androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:6796) 的 LayoutInflater.inflate(..., boolean attachToRoot) 的 attachToRoot 参数
我很困惑,无法找出原因。我该如何解决?
android - 如何将 Android ViewBinding 用于从现有布局扩展的自定义视图
我看到有对 Activity 和 Fragment 的 ViewBinding 支持。但是自定义视图呢?
我的自定义视图喜欢这样:
我尝试创建 ViewBinding 但它不起作用。
你有自定义视图的 ViewBinding 解决方案吗?
firebase - 如何解决错误:在 Android Studio 中找不到符号导入 androidx.appcompat.widget.RecyclerView
我的项目运行良好,但是当我将 google play services 版本更新为 15.0.0 并将 firebase 添加到项目中时,出现以下错误:
它说错误:找不到符号导入androidx.appcompat.widget.RecyclerView,我找到了另一个有相同问题的线程,但没有准确说明情况,所以我决定发布一个新问题。
这是我的 Gradle 依赖项:
另一个对我没有帮助的问题和答案相同的线程地址是 StackOverflow 上的类似线程
我一直在尝试的其他一些解决方案:-使缓存无效并重新启动-清理构建
另一个项目依赖项是 smartlocation,它也需要 google play 服务,这里是这个模块依赖项的 gradle 文件:
android - Android资源链接使用失败:buildFeatures {viewBinding = true}
今天开了一个android studio后,遇到了一个奇怪的问题。它在说
DSL 元素 'android.viewBinding.enabled' 已过时,已 替换为 'android.buildFeatures.viewBinding'。
搜索了一下后我发现我必须使用
buildFeatures {viewBinding = true}
反而。所以,我用上面的替换了 viewBinding{enabled=true}。在那之后,真正的问题开始了。AAPT 无法再检测到我的可绘制对象。这是我的构建脚本:
和 build.gradle
我不知道发生了什么事了。任何建议都会有很大帮助。
android - 如何将 ViewBinding 与抽象基类一起使用
我开始使用 ViewBinding。在搜索了一些示例或建议如何将 ViewBinding 与抽象基类一起使用后,该抽象基类应处理预期出现在每个子布局中的视图的相同逻辑,我最终在此处发布了此问题。
场景:
我有一个基类public abstract class BaseFragment
。有多个片段扩展了这个基类。这些片段具有从基类实现处理的公共视图(使用“旧” findViewById()
)。例如,每个片段的布局都应该包含一个 ID 为 text_title 的 TextView。BaseFragment
以下是从's处理它的方式onViewCreated()
:
现在 ViewBinding-API 为每个子片段生成绑定类。我可以使用绑定来引用视图。但我不能使用基类中的具体绑定。即使在基类中引入了泛型,也有太多类型的片段绑定,我暂时放弃了这个解决方案。
从抽象基类处理绑定视图的推荐方法是什么?有没有最佳实践?没有在 API 中找到一种内置机制来优雅地处理这种情况。
当期望子片段包含公共视图时,我可以提供抽象方法,从片段的具体绑定返回视图,并使它们可以从基类访问。(例如protected abstract TextView getTitleView();
)。但这是一个优势而不是使用findViewById()
?你怎么看?还有其他(更好的)解决方案吗?请让我们开始一些讨论。
android - 生成的 ViewBinding 的父类是什么?
我正在尝试干掉我的代码,并且我有几个活动使用相同的代码块,我想将它们移入父活动中的方法中。问题是这段代码使用生成的 ViewBindings 是唯一的类,我无法弄清楚父类是什么,以便将其用作方法参数。
例如,这段代码在两个不同的活动中,唯一的区别是一个活动绑定 = Activity1Binding,另一个是 Activity2Binding。他们共享一些具有相同 ID 的视图。
如果可能的话,我想在父活动中实现类似的东西以防止重复代码:
android - 将 Android Studio 更新到 4.0 后,Android View Binding 库出错
昨晚我升级了我的 Android Studio 4.0,它在 View Binding 中显示错误。我在我的 Gradle 中尝试了以下代码。但它显示这样的错误,