我正在尝试将findViewById应用程序中的调用切换到新添加的调用ViewBinding,但与调用的视图以外的视图交互时遇到问题setContentView()。
我膨胀AppBarMainBinding 的方式是否错误?或者我还缺少其他东西吗?
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
...
private ActivityMainBinding mActivityMainBinding;
private AppBarMainBinding mAppBarMainBinding;
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mActivityMainBinding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(mActivityMainBinding.getRoot());
mAppBarMainBinding = AppBarMainBinding.inflate(getLayoutInflater());
setSupportActionBar(mAppBarMainBinding.toolbar);
mAppBarMainBinding.fabCollapse.fab_collapse.setOnClickListener(view -> {
Log.d(TAG, "Clicked fab_collapse");
});
}
}
包含activity_main.xml和<include layout="@layout/app_bar_main" />菜单
app_bar_main.xml包含一个工具栏和一些操作按钮
在这种情况下,如果我setContentView(mActivityMainBinding.getRoot())在主活动的 onCreat() 中调用 ,应用程序将启动activity_main布局并显示操作按钮和工具栏占位符,但所有按钮都不起作用。单击操作按钮不会调用它,setOnClickListener并且工具栏为空白(它没有实现setSupportActionBar(toolbar))
活动主文件
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
</androidx.drawerlayout.widget.DrawerLayout>
白衣染霜花
长风秋雁
湖上湖
繁花不似锦
相关分类