【发布时间】:2018-05-21 14:32:59
【问题描述】:
我在ViewPager 中有我的片段,我希望其中一个片段具有可点击的RelativeLayout。我正在使用数据绑定:
<data>
<variable
name="handlers"
type="com.matip.presenters.MyPresenter" />
</data>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="@{() -> handlers.onLayoutClick()}">
...
...
...
</RelativeLayout>
我的片段 onCreateView:
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
mBind = DataBindingUtil.inflate(inflater, R.layout.fragment_layout, container, false);
presenter = new MyPresenter();
mBind.includedLayout.setHandlers(presenter);
return mBind.getRoot();
}
但是onLayoutClick 没有被调用。它与 ViewPager 有关系吗?它需要点击而不是里面的片段吗?如果是这样,我该如何解决?
编辑
My ViewPager Adapter:
private class MyViewPagerAdapter extends FragmentStatePagerAdapter {
public MyViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch(position) {
case 0:
return MainInfoFragment.newInstance(parkingId);
case 1:
return MainDescFragment.newInstance(parkingId);
case 2:
return MainServicesFragment.newInstance(parkingId);
default:
return null;
}
}
@Override
public int getCount(){
return 3;
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
switch(position){
case 0: return getContext().getString(R.string.info_title);
case 1: return getContext().getString(R.string.desc_title);
case 2: return getContext().getString(R.service_title);
default: return null;
}
}
}
【问题讨论】:
-
你的onLayoutClicked方法在哪里?,可以分享一下MyPresenter.java吗?
-
请张贴
MyPresenter的onLayoutClick()方法及其签名。另外,如果您尝试android:onClick="@{handlers::onLayoutClick}"会怎样? -
您检查我的答案了吗...??因为它应该可以解决您的问题。。按您的预期工作。
-
@matip 你找到什么解决方案了吗?