4

我试图有一个视图很少的视图(比如说 5 个?)并且在一个视图中(比如说第三个视图?)我必须放置另一个视图页面,所以在搜索了一段时间后,我想出了一些我无法为我的情况得到确切答案的问题。

  • 如何在另一个 viewpager 的片段中实现 viewpager?
  • 如果可以完成上述任务,viewpagers 的触摸功能将如何处理?改变内部viewpager的视图不会影响外部viewpager吗?

我真的不需要代码解决方案,但更像是概念解决方案,所以我不要求任何人做我的编码,但我一直远离 android,我宁愿听到新概念优点。

提前致谢。

编辑:

好的,我在某个时候设法做到了,但我现在面临的另一个问题。这是对包含我的 viewpager 的片段的调用:

Fragment fragment = new Fragment();
switch(position)
{
    case 0: fragment = new CalendarFragment();break;
    case 1: fragment = new DummySectionFragment();
            Bundle args = new Bundle();
            args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, 2);
            fragment.setArguments(args);break;
}
return fragment;

这是 calendarFragment 类的 oncreate:

public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
    View cal = inflater.inflate(R.layout.calendar, container, false);
    viewPager = (ViewPager) cal.findViewById(R.id.calendar_pager);
    viewPager.setOnTouchListener( 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.setAdapter(createCalendarAdaptor());
    viewPager.setCurrentItem(MONTHS_LIMIT / 2);
    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageSelected(int arg0) {
            //updateResetButtonState();
        }

        @Override
        public void onPageScrollStateChanged(int arg0) {
        }

        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {
        }
    });
    return cal;
}

我在第一个片段中得到了日历,它工作得很好,我可以轻松滚动到下一页,然后我可以轻松地移回第一页,但是当我移到第三页然后我又回到第一页这是我的另一个查看器,它会导致错误:

java.lang.IllegalStateException: Recursive entry to executePendingTransactions

我不确定为什么会发生这种情况,我已经进行了一些搜索,似乎是因为我在片段中使用了查看器...

任何帮助,将不胜感激。

4

0 回答 0