0

我不确定如何用其他方式来表达标题,但我的应用程序中的 viewpager 可以正常工作 - 实例化当前视图以及左视图和右视图。

我想知道的是,我是否可以仅在第一次加载 viewpager 时显示非 viewpager 元素(在本例中为 listview)的内容,然后随着 viewpager 滚动而相应更新。

相关代码:

_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 加载三次,月份+1 显示在eventsSummary.

例如,二月是当前月份,它确实显示了二月,正如我在日志中看到的那样,viewpager 第一次加载时,但是 viewpager 也实例化了下一个和上一个视图 - 所以一月和三月被加载。最后eventsSummary显示三月的事件,而主日历(即 ViewPager 元素)显示二月。

我怎样才能eventsSummary显示 2 月的事件,而不是 3 月的事件,然后用用户滑动到的月份更新其视图?

我正在使用此处显示eventsSummary的方法在片段和 Calendar ViewPager 容器之间传递信息。

4

1 回答 1

1

我是否正确理解您在每个片段中设置日期onCreate()

也许您应该观察 ViewPager 正在显示的页面,并通过 OnPageChangeListener触发事件。

于 2013-02-01T23:57:09.227 回答