问题标签 [android-pageradapter]
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.
android - PagerAdapter 类被多次调用
我正在开发一个应用程序,其中有一个 ViewPager 视图,我创建了一个 PagerAdapter,它有视图,PagerAdapter 的 instanceiteItem() 方法在 create() 中被调用了两次我不知道为什么,谁能帮我这?
这是我的代码,
请帮忙
android - ViewPager 中的 ListFragments
我正在编写我的第一个基于片段的应用程序并遇到了一些我无法使用 API 或 Stackoverflow 解决的严重问题。
我正在使用viewPager在两个列表之间滑动。每个列表都有一个标题按钮来创建一个新的列表元素(类似于原生的 android 警报应用程序)。该按钮当前返回一条错误消息以进行调试。
问题是:
- FragmentList A 返回 FragmentList B 的调试消息
FragmentList B 不返回调试消息
/li>
我的自定义PageAdapter将创建两个列表 framgent 对象:
FoodListFragment 被剪断(除调试输出外,其他列表看起来相似):
主.xml:
android - 如何对 ViewPager 中的所有页面使用单个 Fragment?
在我的应用程序中,我必须在ViewPager
. 我使用了一个片段(例如StudentPageFragment
),并编写了小部件初始化代码,onCreateView()
如下所示:
我维护了一个ArrayList<Student>
包含所有学生对象的通用对象。
在displayStudentDetails()
方法中,我在那里填充了前 3 个 Student 对象。如果我们滑动下一页,相同的片段应该称为显示的下一个 3 个学生对象。
在ViewPagerAdapter
课堂上:
现在我的问题是所有页面都包含前 3 个学生的详细信息。请给我最好的方法来做到这一点。
android - Android:FragmentPagerAdapter:第一次调用两次 getItem 方法
在我的应用程序中,我使用了 ViewPager。像,
并在 FragmentActivity 中创建 ViewPager 对象和 ViewPagerAdapter(扩展 FragmentPagerAdapter)对象。
Adapter 类就像,
在 MyFragment 类中,
在 onResume 中,我必须将 wigets 对象存储到公共静态变量中。
我必须更新从 FragmentActivity 中的用户类获得的文本视图。 我的问题是 getItem() 方法在第一次被调用两次 事实上,模拟器中显示的视图是第 0 个索引,但在 FragmentActivity 中获得了第 1 个索引值。如果我第二次停止调用 getItem() 方法,我可以在 FragmentActivity 中获取第 0 个索引 TextView 引用。
请给我最好的方法来做到这一点。
谢谢
android - PagerAdapter 类 instantiateItem 在 onCreate 中被自动调用两次
我是viewpager的新手,我想使用viewpager创建视图,这里所有的东西都是动态的,所以我遵循这种方式,我的问题是instantiateItem()在创建时被调用了两次。
创建
android - 屏幕方向更改后从 ViewPager 的适配器中销毁项目
ViewPager
因此,在屏幕方向更改后,我在销毁(删除)一页时遇到了问题。我将尝试在以下几行中描述问题。
我正在使用 的FragmentStatePagerAdapter
适配器ViewPager
和一个描述无限视图寻呼机应该如何工作的小界面。它背后的想法是您可以向右滚动直到到达ViewPager
. 如果您可以从 API 调用加载更多结果,则会显示一个进度页面,直到结果出现。
到目前为止一切都很好,现在问题来了。如果在这个加载过程中,我旋转屏幕(这不会影响 API 调用,它基本上是一个AsyncTask
),当调用返回时,应用程序崩溃给我这个异常:
在对库的代码进行了一些挖掘之后,似乎mIndex
片段的数据字段比0
这种情况下要少,这会引发该异常。
这是寻呼机适配器的代码:
下面的onPageSelected()
回调,如果需要,它基本上会启动 api 调用:
现在,还值得一提的是,API 调用在传递结果后做了什么。这是回调:
好的,现在因为该setData()
方法调用notifiyDataSetChanged()
,这将为getItemPosition()
当前在currentFragments
数组中的片段调用 。当然,对于它返回的进度元素,POSITION_NONE
因为我想删除这个页面,所以这基本上是destroyItem()
从PagedSingleDataAdapter
. 如果我不旋转屏幕,一切正常,但正如我所说,如果我在显示进度元素并且 API 调用尚未完成时旋转它,destroyItem()
则将在活动重新启动后调用回调。
ViewPager
也许我还应该说我OutterFragment
将ViewPager
. 我pagerAdapter
在onActivityCreated()
回调中实例化OutterFragment
并使用,setRetainInstance(true)
这样当屏幕旋转时pagerAdapter
保持不变(什么都不应该改变,对吧?),代码在这里:
现在总结一下,问题是:
如果我尝试从ViewPager
实例化后的进度元素中删除它并且活动被销毁并重新创建(屏幕方向更改)我得到上述异常(pagerAdapter
保持不变,因此其中的所有内容也保持不变,引用等......因为未销毁的OutterFragment
主机pagerAdapter
仅与活动分离,然后重新连接)。可能它发生在片段管理器上,但我真的不知道是什么。
我已经尝试过的:
尝试使用另一种技术删除我的进度片段,即在
onTaskSuccess()
我试图从片段管理器中删除片段的回调中,没有奏效。我还尝试隐藏进度元素,而不是从片段管理器中完全删除它。这工作了 50%,因为视图不再存在,但我有一个空页面,所以这不是我真正想要的。
我还尝试
progressFragment
在屏幕方向更改后(重新)将其附加到片段管理器,这也不起作用。在重新创建活动后,我还尝试将进度片段删除然后再次添加到片段管理器,但没有奏效。
试图
destroyItem()
从回调中手动onTaskSuccess()
调用(这真的非常难看)但没有奏效。
对不起,这么长的帖子,但我试图尽可能地解释这个问题,以便你们能够理解它。
任何解决方案,建议都非常感谢。
谢谢!
更新:解决方案 确定,所以这需要一段时间。问题是在进度片段上调用了 destroyItem() 回调两次,一次是在屏幕方向改变时,一次是在 api 调用完成后。这就是为什么例外。我找到的解决方案如下:继续跟踪 api 调用是否完成,并在这种情况下销毁进度片段,代码如下。
然后这个 apiCallFinished 在适配器的构造函数中设置为 false,在onTaskSuccess()
回调中设置为 true。它真的有效!
android - FragmentPagerAdapter 的问题
我正在尝试使用 viewpager 和片段制作一个幻灯片屏幕,以便我可以为每个片段加载不同的布局并为每个页面提供不同的功能。
我按照教程完成了这个。
悬停时出现的错误public Fragment getItem(int arg0)
:返回类型不兼容FragmentPagerAdapter.getItem(int)
和错误#2:构造函数FragmentPagerAdapter(FragmentManager)
未定义->悬停时获取此构造函数super(fm);
android - 将高度设置为 WRAP_CONTENT 到 ViewPager 没有发生
我在 ViewPager 中有图像。我读过我们不能将 Wrap_CONTENT 设置为 ViewPager 的高度,因为它不起作用。那么我应该怎么做才能以适当的纵横比显示图像,因为图像大小可能会有所不同。那么我能做些什么来实现这一点。
请提出建议。
android - 使用 photoview 和 photoviewattacher 删除时 Viewpager 视图更新错误
我使用了来自 Chris Banes 开源 photoview 库的 photoview 以及 ViewPager 中的 Universal Imager Loader 库来制作图库应用程序。问题是当我尝试删除图像时,从 sdcard 中删除图像文件,更新关联的数据列表,当我调用 notifyDataSetChagned() 时,没有任何反应,视图保留在寻呼机内并且没有改变。
覆盖 getItemPosition() 并返回 POSITION_NONE 会从 PhotoAttacher 返回错误:E/AndroidRuntime(18407): java.lang.IllegalStateException: ImageView 不再存在。您不应再使用此 PhotoViewAttacher。
正如我所提到的,没有它,就没有任何变化。有任何想法吗?
下面是代码的链接:
android - Add button to a specific fragment in ViewPager
I found the ViewPager in the android SDK and was messing around with it. Basically my final task is to create a youtube, facebook, and twitter feed all in one app, using the ViewPager and Fragments to scroll between the 3 categories. I'm having a bit of a hard time understanding house these work, more specifically, how to I add an element (Button) to a specific Fragment? Here's my code so far: