您好,我想知道在使用Android Data Binding Library时是否有一个XML标签可用于此功能,或者如何在不使用findViewById()方法的情况下实现此功能。
谢谢
您好,我想知道在使用Android Data Binding Library时是否有一个XML标签可用于此功能,或者如何在不使用findViewById()方法的情况下实现此功能。
谢谢
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/AppTheme.PopupOverlay" />
然后在你的onCreate()
方法中执行以下操作
ActivityGalleryBinding binding = DataBindingUtil
.setContentView(this, R.layout.activity_gallery);
binding.setViewModel(new GalleryModel(this));
//set it like this
setSupportActionBar(binding.<location>.<of>.<your>.toolbar);
如果您的工具栏在其他XML组件中(通过<include/>
引用),只要为<include/>
提供@id
,您仍然可以访问它。
DataBinding
,并使用<include>
将工具栏用于activity_main.xml
中,但我没有在activity_main.xml
中使用DataBinding
,那么如何在MainActivity中获取toolbarBinding(custom toolbar)
。 - Ravi Vaniyabinding.root.toolbar
位于<include>
中,该怎么办? - Anbuselvan RockyActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
setSupportActionBar(binding.toolbar);
你可以这样使用。在多次搜索后,这个回答对我很有帮助。
使用id
来包含你的工具栏,例如我的工具栏id
是tb
,包含id
是mtoolbar
现在使用setSupportActionBar(mainBinding.mtoolbar.tb);
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
>
<data>
<variable
type="com.example.viewModel"
name="viewModel"
/>
</data>
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
app:title="@{viewModel.title}"/>
</layout>