gpt4 book ai didi

android - ViewPager 内的 fragment 未触发 OnClick 事件

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:47:51 26 4
gpt4 key购买 nike

我的 fragment 在 ViewPager 中,我希望其中一个 fragment 具有可点击的 RelativeLayout。我正在使用数据绑定(bind):

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

我在 CreateView 上的 fragment :

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有关系吗?它需要点击而不是里面的 fragment 吗?如果是这样,我该如何解决?

编辑

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;
}
}
}

最佳答案

要使 XML 中的 onClick 属性生效,该方法需要处于 Activity 状态。对于 fragment ,首选方法是以编程方式设置监听器。如果该方法在 Activity 中,则 XML 方法将起作用,但如果该方法需要针对不同的 fragment 表现不同,它将变得复杂。

我也不明白你所说的 android:onClick="@{() -> handlers.onLayoutClick()}" 是什么意思。通常它看起来像android:onClick="onLayoutClick"。定义就像

public void onLayoutClick(View view) {
//Your code
}

还有另一种可能性:您可能已将 OnTouchListener 设置为覆盖点击的 View 。如果你想要触摸和点击监听器,那么试试 GestureDetector .

关于android - ViewPager 内的 fragment 未触发 OnClick 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50451108/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com