DataBinding - 使用基本绑定类

时间:2017-05-22 07:21:31

标签: android data-binding interface

是否有可能以某种方式使用DataBinding继承?我想定义一个自定义界面" bind"它适用于多种布局。

我知道接口不能使用成员变量,但也许有人知道创建成员方法的方法(插件),以便绑定创建这些方法。

我想要关注:

public interface IIconBinding
{
    ImageView ivIcon();
}

然后我想强制may布局来实现这个接口,并在接口函数中返回id为R.id.ivIcon的视图。代码可能如下所示:

<layout
     xmlns:android="http://schemas.android.com/apk/res/android"
     app:interface="com.example.app.IIconBinding">

     <ImageView
        android:id="@+id/ivIcon"
        android:layout_width="36dp"
        android:layout_height="36dp" />

</layout>

或类似的。这个例子应该只是解释我想要实现的目标。我希望能够将创建的绑定强制转换为IIconBinding的实例,并在剩下的代码中使用它,我不在乎它是否是上面的布局或任何其他布局{标识为ImageView的{​​1}}并实现ivIcon接口。

据我所知,这是不可能的,但也许有人知道另一种方法来达到我想要的目的吗?

修改 - 目标

结果应该允许我做以下事情:

IIconBinding

我知道所有3个绑定都包含// all objects are DIFFERENT binding objects Example1Binding binding1 = DataBindingUtil.bind(inflator.inflate(.R.layout.example1, container, false)); Example2Binding binding2 = DataBindingUtil.bind(inflator.inflate(.R.layout.example2, container, false)); Example3Binding binding3 = DataBindingUtil.bind(inflator.inflate(.R.layout.example3, container, false)); ,标识为ImageView,所以我想做以下操作:

ivIcon

现在我能够编写一个可以在IIconBinding iconBinding1 = (IIconBinding) binding1; IIconBinding iconBinding2 = (IIconBinding) binding2; IIconBinding iconBinding3 = (IIconBinding) binding3; 对象中传递的函数,并在正确的视图中显示一个图标,无论绑定是IIconBinding的对象,Example1BindingExample2Binding,如下所示:

Example3Binding

如果没有通用接口,这将无法工作,我需要将所有绑定包装在容器中或编写3个不同的IconUtil.loadIcon(iconBinding1); IconUtil.loadIcon(iconBinding2); IconUtil.loadIcon(iconBinding3); 函数,每个绑定一个。

0 个答案:

没有答案
相关问题