【发布时间】:2017-08-27 06:18:56
【问题描述】:
我有一个数据绑定布局,其中包含一个框架布局,其中包含 <include> 的其他布局:
<FrameLayout
android:id="@+id/global_actions_frame_layout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.075"
android:background="@color/colorToolBar">
<include
android:id="@+id/included"
layout="@layout/global_actions">
</include>
</FrameLayout>
布局里面有这种格式的图片按钮:
<ImageButton
android:id="@+id/settingsButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/ic_settings_black_36dp"
android:layout_gravity="end"
android:background="@color/colorToolBar"
android:layout_margin="4dp"
android:layout_marginLeft="20dp"
android:onClick="@{listener::onClickState}"
android:alpha="0.4"/>
我在它们周围添加了标签,并添加了带有活动名称的数据
<data>
<import type="android.view.View"/>
<variable name="listener" type="MyActivity"/>
</data>
在 MyActivity 中,我调用了一个函数来收听 On click from the image button:
public void onClickState(View view){
int id = view.getId();
}
但由于某种原因,当我单击时我没有使用此功能 我也试过了
android:onClick="@{listener.onClickState}"
但没有任何帮助。
【问题讨论】:
-
你是否在包含的布局中绑定数据变量可以通过使用应用程序命名空间和属性中的变量名称从包含布局传递到包含布局的绑定:
-
我第一次使用包含的绑定,它工作正常,我只包含布局并使用
binding.included_layout.textview.setOnClickListener(....)
标签: android android-databinding