0

タイトルを他にどのように表現するかはわかりませんが、アプリケーションのビューページャーは正常に機能します。つまり、現在のビューと左右のビューをインスタンス化します。

私が知りたいのは、viewpager以外の要素(この場合はlistview)のコンテンツを、viewpagerの最初のロードで表示し、viewapagerがスクロールするときにそれに応じて更新できるかどうかです。

関連コード:

_calendar.set(Calendar.MONTH, m);
_calendar.set(Calendar.YEAR, y);
holdTodaysDate.set(Calendar.MONTH, m);
holdTodaysDate.set(Calendar.YEAR, y);

_calendar = holdTodaysDate;

_calendar.add(Calendar.MONTH, offset-1); 
month = _calendar.get(Calendar.MONTH)+1;
year = _calendar.get(Calendar.YEAR);
Log.d("Calendar", "Month Year" + month + " " + year);

eventsSummary.onEventsNavigation(month, year, date_value);

--calendar adapter--

問題は、eventsSummary(非viewpager要素)がviewpagerのロード時に最初の月の値を使用してロードする必要があることですが、viewpagerが3回ロードされるため、month+1がに表示されeventsSummaryます。

たとえば、2月は現在の月であり、ログに表示されているように、ビューページャーが最初に読み込まれたときに2月が表示されますが、ビューページャーは次のビューと前のビューもインスタンス化します。つまり、1月が読み込まれ、3月になります。最後に3月のeventsSummaryイベントが表示され、メインカレンダー(ViewPager要素)には2月が表示されます。

eventsSummary3月ではなく2月のイベントを表示し、ユーザーがスワイプした月でビューを更新するにはどうすればよいですか?

ここに示すアプローチを使用して、フラグメントeventsSummaryとCalendarViewPagerコンテナーの間で情報を渡します。

4

1 に答える 1

1

各フラグメントに日付を設定していることを理解して正しいonCreate()ですか?

おそらく、代わりにViewPagerが表示しているページを観察し、OnPageChangeListenerを介してイベントをトリガーする必要があります。

于 2013-02-01T23:57:09.227 に答える