我已经用FragmentStatePagerAdapter实现了ViewPager,我想要一个ItemClickListener,以便当用户单击Viewpager的每个片段时可以打开详细信息屏幕。我找不到任何可用的此类方法。
答案 0 :(得分:0)
您应该实现一个回调接口,以在片段和包含的活动之间进行通信。在每个片段中,设置所需的侦听器,然后将所需的所有信息传递回您的活动以处理点击。
public class MyFragment extends Fragment {
public interface MyFragmentListener {
void onTheActivityICareAbout();
}
private MyFragmentListener mCallback;
@Override
public void onAttach(Context context) {
super.onAttach(context);
try {
mCallback = (MyFragmentListener) context;
} catch (ClassCastException e) {
throw new ClassCastException(context.toString()
+ " must implement MyFragmentListener");
}
}
}
然后,当您绑定视图时,将列表器设置为在需要的任何事件上使用回调,并且您的活动具有集中的代码来处理该事件。任何接口方法也可以用于将数据传递回活动。
您可以查看此link以获得更多详细信息。
答案 1 :(得分:0)
您的FragmentStatePageAdapter将具有如下所示的方法:
override fun getItem(day: Int): Fragment = YourPageFrament.newInstance()
因此,在YourPageFragment的代码中,您可以在片段本身的OnClickListener上进行设置。
您可以通过修改该片段的XML布局文件以使其包含线性布局或某种布局来设置此侦听器。
然后,在YourPageFragment类中,可能在onCreateView()方法中,可以在片段的布局上设置OnClickListener。