问题标签 [android-viewpager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6150 浏览

android - ViewPager 的 Android Viewholder

您好,我正在使用 ViewPager,但我现在想保留状态,而不是重新生成单元格。

我注意到 viewpager 与 listviews 的自定义适配器非常相似,并且它们的功能相似,其中 listview 在不再出现在屏幕上后重新生成单元格中的数据,viewpager 是相同的方式。

有没有办法做一个viewholder,某种对象在最初加载后保留每个视图的状态,以便viewpager单元加载更快。(每个单元格都有一些处理和渲染,但我会自己测试内存的限制)

这是我的浏览器

0 投票
1 回答
578 浏览

android - Android FragmentVIewPager 和屏幕重绘问题

我们遇到了 FragmentViewPager 和 Fragments 的问题。

我们正在使用 CursorLoader 在片段中填充列表。视图寻呼机由 4 个页面组成。

基本上,当从一个片段滑动到另一个片段时它工作得很好,但是一旦我们在片段 A 的上下文中从服务中提取数据并滑动到片段 B 然后 C 等等,片段中的列表似乎没有加载,即空白屏幕,但如果设备的屏幕被关闭然后在片段内的列表中显示数据。

在游标加载器的 onLoadFinished 方法中,我们在每次刷新时重置适配器。

我很难找到解决方案。有什么建议吗?

附加信息,我有时也会收到此堆栈跟踪。

09-21 15:20:44.489: INFO/dalvikvm(21106): Landroid/view/ViewRoot$CalledFromWrongThreadException;: 只有创建视图层次结构的原始线程才能触摸它的视图。09-21 15:20:44.497: INFO/dalvikvm(21106): 在 android.view.ViewRoot.checkThread(ViewRoot.java:2932) 09-21 15:20:44.497: INFO/dalvikvm(21106): 在 android. view.ViewRoot.requestLayout(ViewRoot.java:629) 09-21 15:20:44.501: INFO/dalvikvm(21106): 在 android.view.View.requestLayout(View.java:8267) 09-21 15:20: 44.501: INFO/dalvikvm(21106): 在 android.view.View.requestLayout(View.java:8267) 09-21 15:20:44.501: INFO/dalvikvm(21106): 在 android.view.View.requestLayout(View .java:8267) 09-21 15:20:44.501: INFO/dalvikvm(21106): 在 android.view.View.requestLayout(View.java:8267) 09-21 15:20:44.517: INFO/dalvikvm(21106 ):在安卓。

谢谢,

阿克谢

0 投票
13 回答
56566 浏览

android - ViewPager 作为循环队列/包装

我正在使用ViewPagerwithFragmentStatePagerAdapter来允许在某些片段之间导航。

假设我有三个片段ABC。ViewPager 最初显示 Fragment A,并允许您通过从右向左滑动导航到 Fragment B,然后通过再次滑动导航到 Fragment C。这允许以下导航路径:A <--> B <--> C.

我想要的是能够在 Fragment A 上从左向右滑动并让 ViewPager 显示 Fragment C,即让它表现为一个循环队列并允许... --> C <--> A <--> B <--> C <--> A <-- ...

我不希望片段在其他位置重复(即以三个以上的实例结束)。

ViewPager 可以实现这种包装功能吗?

0 投票
2 回答
640 浏览

android - Android viewpager,控制哪些视图重新渲染

我的 viewpager 目前只重新渲染与视觉所见相差两个视图的视图。

示例(分别显示)

我将如何强制它重新加载特定视图 X 许多视图远离 currentView,有一些我想要它的用例场景,以及我不想要它的其他情况。但目前我只知道如何重新加载整个适配器 - 它可能从数组列表中提取

我真的不确定如何控制 Viewpager - 那里的例子很少。我所知道的就是重置“notifyDataSetChanged”上的整个列表

洞察力赞赏

0 投票
34 回答
372230 浏览

android - IllegalStateException:在使用 ViewPager onSaveInstanceState 后无法执行此操作

我从市场上的应用程序中获取用户报告,并提供以下异常:

显然它与我不使用的 FragmentManager 有关。stacktrace 没有显示我自己的任何类,所以我不知道这个异常发生在哪里以及如何防止它。

记录一下:我有一个 tabhost,在每个选项卡中都有一个 ActivityGroup 在活动之间切换。

0 投票
1 回答
1421 浏览

android - 过滤作为 ViewPager 片段一部分的 ListView

我最近将我的应用程序从使用 Activites 和 TabHost 转换为使用 Android Compat Library for API v4 中的 Fragments 和 ViewPager 我能够修复/解决大多数问题,但无法通过使用该setTextFilterEnabled方法在 ListViews 中过滤文本来保留以前的行为。

我的ViewPagerAdapter包含片段,每个片段都有一个ListView. 当用户在 中滑动时ViewPager,我希望当前活动的 Fragment 的 ListView 在用户键入时过滤文本,就像我能够使用 TabHost-Activity 模型一样。目前,看起来第一个 Fragment 的 ListView 会正确响应,但如果我滑动到下一个 Fragment 并尝试过滤其 ListView,过滤仍将适用于第一个。如果我扫过前两个然后过滤,结果是不确定的。当前活动的 Fragment 永远不会应用过滤器。有时相邻的片段会,有时不会。

我试图通过添加自定义回调来解决这个问题,这些回调让我可以监控哪些 Fragment 当前可见,哪些是隐藏的。当一个片段作为 ViewPager 的主要片段可见时,我将setTextFilterEnabled其 ListView 上的 设置为true,并将所有其他片段设置为false。这似乎根本没有帮助(我验证我正在正确切换标志以获取正确的片段)。

我怀疑这需要与 ViewPager 进行某种更深入的集成,但我无法真正弄清楚我需要连接什么。关于如何完成这项工作的任何想法?如果需要,我很乐意使用 ACL 代码。

0 投票
1 回答
1393 浏览

android - 带有异步任务的 Android Viewpager(页面加载时的微调器)

我想要一个在内容从后台进入时显示加载的 Viewpager。基本上我希望第一个 View 被加载,但是 View+1 和 View-1 仍然会被加载。如果用户向任一侧滑动,我希望他们在加载时看到一个旋转对话框

我是否只需将 AsyncTasks 添加到 ViewPager 中,并确定它们何时运行?我不希望加载太多 AsyncTask,因为 viewpager 会有很多视图。

我认为 Trulia 应用程序可以做到这一点,它与我正在寻找的类似。公寓图像查看会在该视图页面中加载图像时显示加载屏幕。

另外为了记录,我可以像对待活动的 onCreate 函数一样对待 viewpagers 吗?那真的可以解决问题

洞察力赞赏

0 投票
1 回答
14368 浏览

android - getActivity 从片段返回 null

对于学校,我正在制作一个 android 应用程序。对于这个应用程序,我有一个片段,它显示了一个来自数据库的仅包含字符串的网格视图。为此,我需要一个片段。当我调用 getActivity() 时,它返回 null。在应用程序崩溃之前,不会调用此处建议的 onAttach 方法。我应该如何解决这个问题?
weekFragmetn.xml:

logcat:(因为单击项目列表中启动活动的项目,其中片段开始/嵌入)

0 投票
1 回答
569 浏览

android - 切换页面时出现StringIndexOutOfBoundsException

当我从视图页面的片段(weekFragment)内部加载gridview(使用适配器weekAdapter)时,第一页加载正常。但是,一旦我想切换页面,它就会给出 StringIndexOutOfBoundsException。我不知道出了什么问题。在 LogCat 中没有报告任何内容,并且错误仅显示我没有修改的本机方法。请告诉我如何解决这个问题。

weekFragment.java:

weekAdapter.java:

错误:

编辑:我确定 else if(title == "vakken") 是原因。如果它被注释掉,它就可以工作。顺序无关紧要,正是这个子句导致了错误。今天晚些时候,我将尝试制作单独的 ifs。

0 投票
2 回答
1510 浏览

android - Android viewpager 同步滚动

我有两个 ViewPager——Pager1 和 Pager2。我向 Pager1 添加了一个 OnPageChangeListener 并在 onPageScrolled 回调中调用 Pager2.scrollTo(x, y) 来移动它。两个 ViewPager 都可以平滑滚动并且是同步的,但问题是 Pager2 的内容没有改变。我用 LogCat 检查了它——根本没有调用 Pager2 的 instantiateItem() 。

作为一种解决方法,我将 Pager2.setCurrentItem() 添加到 Pager1 的 onPageSelected() 回调中。虽然这确实滚动了两个视图,但它不与像素同步。我想知道是否有一种方法可以实现这种效果而不必覆盖实际的 ViewPager 类。