我试图有一个视图很少的视图(比如说 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
我不确定为什么会发生这种情况,我已经进行了一些搜索,似乎是因为我在片段中使用了查看器...
任何帮助,将不胜感激。