安卓数据绑定:设置SupportActionBar

16

您好,我想知道在使用Android Data Binding Library时是否有一个XML标签可用于此功能,或者如何在不使用findViewById()方法的情况下实现此功能。

谢谢


请查看以下链接,其中包含更多的方法:http://developer.android.com/reference/android/view/View.html - Mohammad Fatemi
4个回答

19
您可以使用视图的id函数访问工具栏实例
<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,您仍然可以访问它。


3
如果工具栏被包含在包含布局中,会怎样?或者如果包含的布局中有多个视图? - ARiF
我在自定义工具栏中使用了DataBinding,并使用<include>将工具栏用于activity_main.xml中,但我没有在activity_main.xml中使用DataBinding,那么如何在MainActivity中获取toolbarBinding(custom toolbar) - Ravi Vaniya
1
如果binding.root.toolbar位于<include>中,该怎么办? - Anbuselvan Rocky

1
在Android Studio中创建项目,然后您可以使用以下代码访问工具栏:
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
setSupportActionBar(binding.toolbar);

0

你可以这样使用。在多次搜索后,这个回答对我很有帮助。

  1. 使用id来包含你的工具栏,例如我的工具栏idtb,包含idmtoolbar

  2. 现在使用setSupportActionBar(mainBinding.mtoolbar.tb);


0
<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>

2
你能分享一下ViewModel的代码,其中你改变了标题吗? - akshay bhange

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接