问题标签 [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 - 重命名布局元素的 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");
这种行为是限制、错误还是我做错了什么?
android - 为什么使用 View Binding 会改变布局?
实际代码:
我的主要活动:
我的 XML 文件:
在 android studio 中预览:
设备中的实际布局:
如果我更改setContentView(binding.root)
为setContentView(R.layout.activity_main)
,Android Studio 和设备的布局变得相同,但当然,按钮不再起作用了......
为什么会这样?为什么要ActivityMainBinding.inflate(layoutInflater)
改变布局?如何解决这个问题?
谢谢
android - Android TextView:与另一个具有相同 ID 的标签冲突
我对 Android XML 文件有疑问,需要您的帮助。我有以下代码:
所以基本上我有两个TextView。当我编译时,我收到错误消息:
当我单击错误的相应行时,会显示这两个 TextView。我不太明白这一点,因为他们没有相同的 ID。他们曾经有相同的ID,但我改变了它,仍然出现问题。也许这与我刚刚启用的 ViewBinding 有关?我会很感激每一条评论。
更新:我意识到实际上与 ViewBinding 有关,因为我还可以看到以下信息:
但我仍然不知道错误的原因。我的意思是他们绝对没有相同的ID。
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
和同样的错误。
如何解决这个问题?
android - 不能直接在xml中使用方法
安卓工作室 3.6
在 build.gradle 中:
主要活动:
我想DateUtil.getCurrrentDateAsString()
直接在xml中使用。
所以我在布局main_activity.xml中使用它
这里布局:
这里DateUtil.kt:
但是当我尝试构建时出现错误:
android - binding.getRoot() - 无法解析方法
在 Android Studio 3.6.3(稳定通道中的最新版本)上。我正在使用ViewBinding
,它工作正常,但在每个活动中,这个错误已经开始弹出。它不会影响任何东西,项目正常构建并且应用程序运行正常,但是每个带有 ViewBinding 的文件中都存在错误。
为什么呢?它最近开始发生。
我试过的:
- 删除 .idea 文件夹和 .iml 文件
- 使缓存无效/重新启动
- 清理/重建项目
android - 如何将视图绑定与线性布局一起使用?
我有一个看起来像这样的activity_main.xml 文件。
因此,当我尝试创建视图绑定并在 Activity 文件中使用它时,类 MainActivity : AppCompatActivity() {
}
我有一些问题。自然,由于线性布局将 layout_gravity 设置为 center,因此它应该在屏幕中居中,无论是垂直还是水平。在 xml 的设计编辑器中就是这种情况,它应该是这样的。
但是当我运行应用程序时,在我的手机中,文本和按钮都会对齐 center_horizontal 但不是垂直对齐。
我也尝试给 center_vertical 但不起作用。
但是,如果我不使用视图绑定并使用 findViewById ,它就可以正常工作。
编辑:我已经从绑定中删除了 mainLinearLayout。所以它只是
我不工作。这就是我想要的样子,这就是它在 xml 的设计视图中的呈现方式(我已经删除了文本并添加了图像)
但是,当我运行它时,我得到了这个。在此处输入图像描述
PS我刚开始学习android开发
android - 为什么生成的视图绑定 .inflate() 方法需要 root 参数?
我正在按照个人项目文档中的示例进行操作。
我有一个名为 的布局activity_main.xml
,为此生成了一个ActivityMainBinding
类。当我调用时ActivityMainBinding.inflate(layoutInflater)
,我收到一条错误消息,指出该方法需要 type 的“root”参数ViewGroup
。
为什么只有一个参数(充气机)的方法不可用?
我已经尝试清理和重建项目。
build.gradle(应用程序)
activity_main.xml
MainActivity.kt
有谁知道我错过了什么?
编辑 来自失败的构建输出的确切错误:
没有为参数“父”传递值</p>
代码中带下划线的错误的工具提示说
没有为参数“root”传递值
android - 默认为新项目启用 viewBinding
要启用 viewBinding,我将其添加到 gradle:
有没有办法在我创建新项目时默认启用 viewBinding?