私はいくつかのビュー (5 としましょう?) を持つビューページャーを使用しようとしていますが、ビューの 1 つ (3 番目のビューとしましょう?) に別のビューページャーを配置する必要があるため、しばらく検索した後、いくつかのビューページャーを作成しました。自分の状況に対して正確な答えを得ることができなかった質問。
- 別のビューページャーのフラグメント内にビューページャーを実装するにはどうすればよいですか?
- 上記のタスクを実行できる場合、ビューページャーのタッチ機能はどのように処理されますか? 内側のビューページャーのビューを変更すると、外側のページャーに影響しませんか?
コードのようなソリューションは本当に必要ありませんが、コンセプトのようなソリューションに似ているので、誰かにコーディングを依頼しているわけではありませんが、Android からは静かに離れており、新しいコンセプトについては長所。
前もって感謝します。
編集:
わかりました、ある時点でそれを行うことができましたが、現在直面している別の問題があります。ビューページャーを含むフラグメントへの呼び出しは次のとおりです。
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;
}
最初のフラグメントでカレンダーを取得し、問題なく動作し、次のページに簡単にスクロールして、最初のページに簡単に戻ることができますが、3 ページ目に移動してから最初のページに戻ると、これは私の他のビューページャーで、エラーが発生します:
java.lang.IllegalStateException: Recursive entry to executePendingTransactions
なぜそれが起こっているのかよくわかりません.いくつかの検索を行ったところ、フラグメント内でビューページャーを使用しているためだと思われます...
どんな助けでも大歓迎です。