mat*_*tip 11 android android-viewpager
我里面有我的碎片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>
Run Code Online (Sandbox Code Playgroud)
我的碎片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();
}
Run Code Online (Sandbox Code Playgroud)
但是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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
要使onClickXML 中的属性起作用,该方法需要处于活动状态。对于片段,首选方法是以编程方式设置侦听器。如果该方法位于活动中,则 XML 方法将起作用,但如果该方法需要针对不同片段采取不同的行为,则该方法将变得复杂。
另外我不明白你的意思android:onClick="@{() -> handlers.onLayoutClick()}"。通常情况下它看起来像android:onClick="onLayoutClick"。定义就像
public void onLayoutClick(View view) {
//Your code
}
Run Code Online (Sandbox Code Playgroud)
还有另一种可能性:您可能已将 OnTouchListener 设置为覆盖单击的视图。如果您想要触摸和单击侦听器,请尝试GestureDetector。
| 归档时间: |
|
| 查看次数: |
403 次 |
| 最近记录: |