gpt4 book ai didi

android - ViewPager 嵌套在 ViewPager 中

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:53:30 29 4
gpt4 key购买 nike

我真的是 android 的新手,如果对我的类(class)作业有任何帮助,我将不胜感激。

我需要做的:

1) 在一个 Activity 中有两个 ViewPagers(未嵌套)

2)两个ViewPager(一个ViewPager嵌套在另一个ViewPager中)

我发现了类似的问题,但我无法使用它。 ViewPager inside ViewPager

我先添加 ViewPager,不知道下一步该做什么

LayoutInflater inflater = LayoutInflater.from(this); //this - context of my activity
List<View> pages = new ArrayList<View>();
View page = inflater.inflate(R.layout.activity_main, null);
//next I adding some buttons on page
pages.add(page);

page = inflater.inflate(R.layout.activity_main2, null); //my second page
//some buttons
pages.add(page);

page = inflater.inflate(R.layout.activity_main3, null); //my third page
//some buttons
pages.add(page);

SamplePagerAdapter pagerAdapter = new SamplePagerAdapter(pages);
ViewPager viewPager = new ViewPager(this);
viewPager.setAdapter(pagerAdapter);
viewPager.setCurrentItem(0);
setContentView(viewPager);

如果我添加 ViewPager2 并调用 setContentView(viewPager2),我将丢失 viewPager1。这两个问题我花了很多时间,请大家帮忙……

//这是我需要做的草图。抱歉,我无法附上我的截图...

最佳答案

我在内部 ViewPager 添加了一个 OnTouchListener:

private OnTouchListener mSuppressInterceptListener = new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
if(
event.getAction() == MotionEvent.ACTION_DOWN &&
v instanceof ViewGroup
) {
((ViewGroup) v).requestDisallowInterceptTouchEvent(true);
}
return false;
}
};

这只是检测内部 ViewPager 上的 ACTION_DOWN 触摸事件并防止外部拦截它。因为它返回 false,所以应该只触发 ACTION_DOWN 事件;所有其他事件将被忽略。您可以将此监听器添加到您想要“保护”不受外部 ViewPager 滚动影响的每个元素,但很明显,如果您想在这些元素上获取任何其他触摸行为,则需要处理将它们放在触摸监听器中,并可能实现更好的监听器。

关于android - ViewPager 嵌套在 ViewPager 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15365915/

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