Android ViewBinding无法呈现LinearLayout配置
ViewBinding实现无法呈现我的代码中使用的Android ViewBinding无法呈现LinearLayout配置,android,android-layout,android-linearlayout,android-viewbinding,Android,Android Layout,Android Linearlayout,Android Viewbinding,ViewBinding实现无法呈现我的代码中使用的LinearLayout的布局配置,而相同的布局可用于findViewById()的旧技术 我已将gradle设置为使用ViewBinding android { ... buildFeatures { viewBinding = true } 下面是使用线性布局的活动 活动\u main.xml <LinearLayout xmlns:android="http://schemas.android.com
LinearLayout
的布局配置,而相同的布局可用于findViewById()的旧技术
我已将gradle设置为使用ViewBinding
android {
...
buildFeatures {
viewBinding = true
}
下面是使用线性布局的活动
活动\u main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="vertical"
tools:context=".MainActivity">
<ImageView
... />
<Button
... />
</LinearLayout>
布局编辑器呈现应用程序的正确对齐方式时,一旦启动到模拟器上,使用LinearLayout
的Layout\u gravity
设置的布局配置(如center\u vertical
对齐)将被忽略
ViewBinding的实现方式是否有错误或缺失?有一种可能是您的线性布局没有任何id
当您执行binding.root时,它会保留一个根视图的引用,在您的案例中它是线性布局的
根据官方文件:
如果为模块启用了视图绑定,则会生成绑定类
对于模块包含的每个XML布局文件。每个绑定类
包含对根视图和具有ID的所有视图的引用
将id指定给LinearLayoutandroid:id=“rootView
,重建项目并尝试运行。
我希望它能解决你的问题
感谢并祝您编码愉快。在您的activity\u main.xml中将id
交给您的LinearLayout
也有同样的问题,通过将android:gravity=“center\u vertical”
添加到activity\u main.xml中的LinearLayout
中解决了这个问题
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:layout_gravity="center_vertical"
android:orientation="vertical"
android:id="@+id/root_view"
tools:context=".MainActivity">
</LinearLayout>
我正在使用Android Studio 4.0。您提供的配置适用于Android Studio 3.6。这表明build.gradle配置在最新版本中已更改。哎呀,我的错。感谢您让我知道。刚刚尝试过,但仍然没有成功。要添加更多详细信息,我可以使用b绑定类实例,如binding.myButton.setOnClickListener{…}
。唯一存在的问题是ViewGroupI的布局属性的呈现。我更新了我的答案。我的recyclerview也面临同样的问题。你解决了这个问题吗?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:layout_gravity="center_vertical"
android:orientation="vertical"
android:id="@+id/root_view"
tools:context=".MainActivity">
</LinearLayout>