首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从SQLite数据库正确填充android-viewFlow

如何从SQLite数据库正确填充android-viewFlow
EN

Stack Overflow用户
提问于 2011-08-29 19:01:25
回答 1查看 693关注 0票数 0

我正在尝试在我的应用程序中实现android-viewFlow (https://github.com/pakerfeldt/android-viewflow),然而,我很难正确地填充每个页面。

问题是我有SQLite数据库,并且我需要一些视图来匹配与我的查询匹配的行数(通常在9到21之间),并且每个视图都应该显示来自该行的值。

在viewFlow中,有一个"sidebuffer“字段,它会根据这个"sidebuffer”的值来加载视图的数量。那么,如何从SQLite填充适配器并强制"sidebuffer“匹配我的行数呢?(如果"sidebuffer = 3",则加载的视图将为2*3+ 1,如果为5,则加载2*5+ 1)。

即使我永远不会有那么多视图要显示,硬编码"sidebuffer = 100“有什么缺点吗?

我之所以使用viewFlow,而不是安卓的兼容性viewPager,是因为我需要实现的标题指示器。

提前感谢!

现在,我已经在viewFlow.java中创建了一个新方法

代码语言:javascript
复制
public setSidebuffer(int sidebuffer) {
    mSideBuffer = sidebuffer;
    init();
}

在我设置viewFlow的main_activity中,我按如下方式调用该方法:

代码语言:javascript
复制
viewFlow = (ViewFlow) findViewById(R.id.viewflow);
AndroidVersionAdapter adapter = new AndroidVersionAdapter(this);
viewFlow.setAdapter(adapter, 3);
viewFlow.setSidebuffer(adabter.getSize() / 2);    // THIS IS THE THING
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-30 18:37:31

我担心设置一个大于适配器中元素数量的辅助缓冲区可能会导致FC。在这种情况下,android-viewflow中有一个bug,我必须调查一下。无论如何,如此大的副缓冲区将导致您的适配器为每个元素创建一个View,从而消耗,潜在地大量的内存。适配器的整个思想是仅在需要时加载视图。

我认为,当您的目标是将整个缓冲区大小设置为适配器的大小时,您从错误的角度处理问题。这不是它的用法。以这样的方式实现适配器:当getView(...)时,适配器将从数据库中检索正确的行,并在必要时膨胀视图,然后返回填充的视图。如果此过程相对较快,您可能会坚持使用较低的辅助缓冲区,例如2或3,因为用户滚动的速度不会快于将视图加载到viewflow中所需的速度。这有意义吗?

如果你更喜欢使用ViewPager,你可能想看看https://github.com/JakeWharton/Android-ViewPagerIndicator这个库是从android-viewflow中的工作中派生出来的,它为ViewPager启用指示器。也许android-viewflow在未来也会支持这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7229214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档