如何创建无尽的片段来处理日期?
How to create endless fragments to work with dates?
我看过其他类似的问题,但似乎无法理解一些事情:
这是我想要实现的目标
所以当按下后退箭头时,我希望 ViewPager 从 0 返回到 -1 等
创建无限片段会影响应用程序的性能,还是只添加 3 个片段会更好。
最后,如果只使用 3 个片段会更好,我将如何根据当前日期获取新数据。
单击箭头(< 或 >),您可以创建 onClick
监听器 并基于它可以执行一些 操作 以及如果您使用的是日历
在该选择日期,您还可以为此创建 onClick
监听器。
基本上性能取决于:
- 您的 XML 布局有多大。
- 在 UI 线程中完成了多少任务。
- 您在视图之间切换的频率。
我会说,使用三个片段会更好。
你应该检查 this answer。
对于任何想知道我是如何做到的人,这是我的代码:
注意,我并没有创建一个无尽的viewpager,而是在仔细查看其他各种之后,我发现他们也没有自己创建一个无尽的ViewPager,而是选择了一个很长的总页数。
下面是我的 ViewPagerAdapter,它扩展了 FragmentStatePagerAdapter。查看 android 的文档,在使用大量片段时建议这样做。
public class ViewPagerAdapter extends FragmentStatePagerAdapter {
private Fragment1 frag1 = new Fragment1();
static final int PAGE_NUM_ITEMS = 7321;
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return frag1.newInstance(position);
}
@Override
public int getCount() {
return PAGE_NUM_ITEMS;
}
}
在我的片段 class 中,代码是:
public Fragment1 newInstance(int page){
Fragment1 frag1= new Fragment1();
return frag1;
}
然后将 viewpager 设置到页面中间,我认为是 3660,因为 Java 从 0 开始。
我看过其他类似的问题,但似乎无法理解一些事情:
这是我想要实现的目标
所以当按下后退箭头时,我希望 ViewPager 从 0 返回到 -1 等
创建无限片段会影响应用程序的性能,还是只添加 3 个片段会更好。
最后,如果只使用 3 个片段会更好,我将如何根据当前日期获取新数据。
单击箭头(< 或 >),您可以创建 onClick
监听器 并基于它可以执行一些 操作 以及如果您使用的是日历
在该选择日期,您还可以为此创建 onClick
监听器。
基本上性能取决于:
- 您的 XML 布局有多大。
- 在 UI 线程中完成了多少任务。
- 您在视图之间切换的频率。
我会说,使用三个片段会更好。
你应该检查 this answer。
对于任何想知道我是如何做到的人,这是我的代码:
注意,我并没有创建一个无尽的viewpager,而是在仔细查看其他各种之后,我发现他们也没有自己创建一个无尽的ViewPager,而是选择了一个很长的总页数。
下面是我的 ViewPagerAdapter,它扩展了 FragmentStatePagerAdapter。查看 android 的文档,在使用大量片段时建议这样做。
public class ViewPagerAdapter extends FragmentStatePagerAdapter {
private Fragment1 frag1 = new Fragment1();
static final int PAGE_NUM_ITEMS = 7321;
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return frag1.newInstance(position);
}
@Override
public int getCount() {
return PAGE_NUM_ITEMS;
}
}
在我的片段 class 中,代码是:
public Fragment1 newInstance(int page){
Fragment1 frag1= new Fragment1();
return frag1;
}
然后将 viewpager 设置到页面中间,我认为是 3660,因为 Java 从 0 开始。