使用 viewBinding 时无法解析方法 'getRoot()'
Cannot resolve method 'getRoot()' when using viewBinding
我在我的项目中使用 viewBinding,效果很好。但是我有一个问题,getRoot()
无法在这一行 View view = binding.getRoot()
中解决。我的代码运行良好,没有任何崩溃,但我希望错误消失,但似乎无法解决问题。我试过禁用和重新启用 viewBinding、使缓存无效并重新启动和清理项目,但这个烦人的错误似乎并没有消失。
这是我的代码
build.gradle
...
viewBinding {
enabled = true
}
...
MainActivity
@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" />
...
我终于修好了!!
我在 docs 中读到 binding.getRoot()
获取相应布局中的根视图(最外层视图)。所以我想我应该给根视图一个 ID,然后调用那个 ID。
activity_main
<RelativeLayout
android:id="@+id/root"
...>
</RelativeLayout>
MainActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding binding = ActivityMainBinding.inflate(getLayoutInflater());
View view = binding.root;
setContentView(view);
...
}
我遇到了同样的问题,我知道你的解决方案有效,但它是一种变通方法。
我的问题来自于我的根视图是 ,它不符合成为根视图的条件。
我在我的项目中使用 viewBinding,效果很好。但是我有一个问题,getRoot()
无法在这一行 View view = binding.getRoot()
中解决。我的代码运行良好,没有任何崩溃,但我希望错误消失,但似乎无法解决问题。我试过禁用和重新启用 viewBinding、使缓存无效并重新启动和清理项目,但这个烦人的错误似乎并没有消失。
这是我的代码
build.gradle
...
viewBinding {
enabled = true
}
...
MainActivity
@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" />
...
我终于修好了!!
我在 docs 中读到 binding.getRoot()
获取相应布局中的根视图(最外层视图)。所以我想我应该给根视图一个 ID,然后调用那个 ID。
activity_main
<RelativeLayout
android:id="@+id/root"
...>
</RelativeLayout>
MainActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding binding = ActivityMainBinding.inflate(getLayoutInflater());
View view = binding.root;
setContentView(view);
...
}
我遇到了同样的问题,我知道你的解决方案有效,但它是一种变通方法。
我的问题来自于我的根视图是