问题标签 [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 投票
1 回答
593 浏览

android - 重命名布局元素的 ID 不会重命名 viewBinding 引用

假设我有一个名为activity_main.xml的布局,它有一个元素:

一个名为MainActivity.java的活动。在它的 onCreate 方法中,我使用 viewBinding 对上面的布局进行膨胀,并设置文本视图的文本:

现在,如果我在activity_main.xml中重命名 TextView 的 id ,通过按下类似 的Shift+F6 东西@+id/text_view_new,那么 in 中的引用onCreate不会从更改binding.textView.setText("some text");binding.textViewNew.setText("some text");

这种行为是限制、错误还是我做错了什么

0 投票
5 回答
1100 浏览

android - 为什么使用 View Binding 会改变布局?

实际代码:

我的主要活动:

我的 XML 文件:

在 android studio 中预览:

预习

设备中的实际布局:

实际布局

如果我更改setContentView(binding.root)setContentView(R.layout.activity_main),Android Studio 和设备的布局变得相同,但当然,按钮不再起作用了......

为什么会这样?为什么要ActivityMainBinding.inflate(layoutInflater)改变布局?如何解决这个问题?

谢谢

GitHub 回购: https ://github.com/Wizard28082006/Dice_Roller

0 投票
3 回答
1213 浏览

android - Android TextView:与另一个具有相同 ID 的标签冲突

我对 Android XML 文件有疑问,需要您的帮助。我有以下代码:

所以基本上我有两个TextView。当我编译时,我收到错误消息:

当我单击错误的相应行时,会显示这两个 TextView。我不太明白这一点,因为他们没有相同的 ID。他们曾经有相同的ID,但我改变了它,仍然出现问题。也许这与我刚刚启用的 ViewBinding 有关?我会很感激每一条评论。

更新:我意识到实际上与 ViewBinding 有关,因为我还可以看到以下信息:

但我仍然不知道错误的原因。我的意思是他们绝对没有相同的ID。

0 投票
7 回答
4870 浏览

android - Android Studio 在启用视图绑定后给出错误和警告。怎么修?

在我的项目中启用视图绑定后出现错误。

我尝试过重新同步项目,使缓存无效。我的应用程序 gradle 文件:

我的项目 gradle 文件

我的活动 main.xml:

android:contentDescription在这里,android studio 在, textAlignment,lineSpacingMultiplier等上发出text警告

这是我的主要 activity.kt 文件:

这里 android studio 说:无法访问android.viewbinding.ViewBinding哪个是com.learning.aboutme.databinding.ActivityMainBinding. 上ActivityMainBinding.inflate()

我尝试创建一个新项目并将我的文件移动到那里,但同样的错误(尝试移动activity_main.xml和同样的错误。

如何解决这个问题?

0 投票
1 回答
123 浏览

android - 不能直接在xml中使用方法

安卓工作室 3.6

在 build.gradle 中:

主要活动:

我想DateUtil.getCurrrentDateAsString()直接在xml中使用。

所以我在布局main_activity.xml中使用它

这里布局:

这里DateUtil.kt

但是当我尝试构建时出现错误:

0 投票
1 回答
216 浏览

android - binding.getRoot() - 无法解析方法

在 Android Studio 3.6.3(稳定通道中的最新版本)上。我正在使用ViewBinding,它工作正常,但在每个活动中,这个错误已经开始弹出。它不会影响任何东西,项目正常构建并且应用程序运行正常,但是每个带有 ViewBinding 的文件中都存在错误。

为什么呢?它最近开始发生。

我试过的:

  • 删除 .idea 文件夹和 .iml 文件
  • 使缓存无效/重新启动
  • 清理/重建项目
0 投票
2 回答
977 浏览

android - 如何将视图绑定与线性布局一起使用?

我有一个看起来像这样的activity_main.xml 文件。

因此,当我尝试创建视图绑定并在 Activity 文件中使用它时,类 MainActivity : AppCompatActivity() {

}

我有一些问题。自然,由于线性布局将 layout_gravity 设置为 center,因此它应该在屏幕中居中,无论是垂直还是水平。在 xml 的设计编辑器中就是这种情况,它应该是这样的。

但是当我运行应用程序时,在我的手机中,文本和按钮都会对齐 center_horizo​​ntal 但不是垂直对齐。

我也尝试给 center_vertical 但不起作用。

但是,如果我不使用视图绑定并使用 findViewById ,它就可以正常工作。

编辑:我已经从绑定中删除了 mainLinearLayout。所以它只是

我不工作。这就是我想要的样子,这就是它在 xml 的设计视图中的呈现方式(我已经删除了文本并添加了图像)

但是,当我运行它时,我得到了这个。在此处输入图像描述

PS我刚开始学习android开发

0 投票
1 回答
301 浏览

android - 当高度为 match_parent 时,回收器查看奇怪的行为

我现在面临着一种奇怪的行为。我正在使用视图绑定来引用 id。当 RecyclerView 高度为 wrap_content 时,项目显示完美,但是当我设置 recyclerview 高度 match_parent 时,项目宽度会在运行时自动包装(wrap_content),但在 xml 中我已将项目宽度设置为 match_parent。

请帮我解决这个问题。

请查看我的 xml 和 kt 文件-:

行项目

适配器文件-:

在此处输入图像描述

0 投票
2 回答
3553 浏览

android - 为什么生成的视图绑定 .inflate() 方法需要 root 参数?

我正在按照个人项目文档中的示例进行操作。

我有一个名为 的布局activity_main.xml,为此生成了一个ActivityMainBinding类。当我调用时ActivityMainBinding.inflate(layoutInflater),我收到一条错误消息,指出该方法需要 type 的“root”参数ViewGroup

为什么只有一个参数(充气机)的方法不可用?

我已经尝试清理和重建项目。

build.gradle(应用程序)

activity_main.xml

MainActivity.kt

有谁知道我错过了什么?

编辑 来自失败的构建输出的确切错误:

没有为参数“父”传递值</p>

代码中带下划线的错误的工具提示说

没有为参数“root”传递值

0 投票
2 回答
152 浏览

android - 默认为新项目启用 viewBinding

要启用 viewBinding,我将其添加到 gradle:

有没有办法在我创建新项目时默认启用 viewBinding?