android - 使用 viewBinding 时无法解析方法“getRoot()”
问题描述
我在我的项目中使用 viewBinding,效果很好。但是我有一个问题getRoot()
在这一行中无法解决View view = binding.getRoot()
。我的代码运行良好,没有任何崩溃,但我希望错误消失,似乎无法解决问题。我已经尝试禁用和重新启用 viewBinding、使缓存无效以及重新启动和清理项目,但这个恼人的错误似乎并没有消失。
这是我的代码
构建.gradle
...
viewBinding {
enabled = true
}
...
主要活动
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding binding = ActivityMainBinding.inflate(getLayoutInflater());
View view = binding.getRoot();
setContentView(view);
binding.bottomNavigationView.setOnNavigationItemSelectedListener(navListener);
...
}
活动主要
...
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation_view"
style="@style/Widget.MaterialComponents.BottomNavigationView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="?attr/colorSurface"
app:menu="@menu/bottom_nav_menu" />
...
解决方案
我终于修好了!!
我阅读了在相应布局中获取根视图(最外层视图)的文档。binding.getRoot()
所以我想我会给根视图一个id,然后调用那个id。
活动主
<RelativeLayout
android:id="@+id/root"
...>
</RelativeLayout>
主要活动
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding binding = ActivityMainBinding.inflate(getLayoutInflater());
View view = binding.root;
setContentView(view);
...
}
推荐阅读
- python - 学习继承 | TypeError: __init__() 接受 3 个位置参数,但给出了 5 个
- java - 使用 jwt 在 springboot 中始终允许未经授权的请求
- javascript - 遇到“错误:Material-UI:capitalize(string) 需要一个字符串参数。” 在 React Material-UI 中使用快餐栏时
- python - 如何在 Pytorch 中创建自定义数据加载器?
- android - Android:layout_weight 似乎在设计中有效,但在应用程序中无效
- python - TypeError:列表索引必须是整数或切片,而不是 str 抓取 JSON 数据时出错
- swift - 如何将变量放入具有不同结束号的for循环中
- java - 为什么我们不能在 java 中返回与 this 关键字不同的 super 关键字
- angular - Angular 拦截器 http 调用
- python - 如何使标签和条目小部件仅在按下按钮后才显示?