问题标签 [fragmentstatepageradapter]
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 - FragmentStatePagerAdapter - 重置数据集
这是场景:
- 适配器已经包含数据
- 我需要清除旧数据集并添加从服务器获取的新数据集
'clear()' 可以删除所有项目,但随后适配器会重新填充旧片段而不是新片段。
提前感谢您的帮助。
android - 回到主 Fragment 实例后,FragmentStatePagerAdapter 没有重新创建 Fragment
范围
我正在为我的大学庆典申请,其中显示了 4 个特定固定日期的活动。我有一个 main_activity,它有一个线性布局,每个片段都显示在上面。现在我有一个片段“ ScheduleFragment ”。
ScheduleFragment 由 ViewPager 和 FragmentStatePagerAdapter 组成,可以在 4 个日期之间切换。
ViewPager 有 4 个页面代表 4 个日期,这 4 个页面来自同一片段的 4 个引用,即“ ScheduleListSubFragment ”
从这里用户选择一个事件并可以查看包含在“ EventDescriptionFragment ”中的事件描述
问题
流程很顺利。用户遇到 ScheduleFragment,然后切换到适当的日期并选择一个事件。
现在,当他从EventDescriptionFragment返回到ScheduleFragment(我稍后会告诉我如何执行此操作)时,ViewPager 显示空白视图。当我们滑动到下一个日期时,下一个日期的事件就会出现,我们滑动回上一个日期,上一个日期的事件就会回来。
我调试了我的应用程序并知道当我们回到ScheduleFragment时,除非我滚动 viewpager ,否则 viewpager 不会为ScheduleListSubFragment创建新的片段实例。
所以,我猜 ViewPager 能够带来用户正在查看的特定引用( ScheduleListSubFragment )。
我如何回到 ScheduleFragment?我在 main_activity 中创建了一个堆栈。当用户选择一个事件时,我将ScheduleFragment的当前引用推入堆栈。当按下返回时,我弹出该引用并将其放在屏幕上。
代码 * ScheduleFragment * import com.Nit_kkr.updates.app.adapters.ScheduleFragmentAdapter;导入 com.viewpagerindicator.PageIndicator;导入 com.viewpagerindicator.TitlePageIndicator;导入 com.viewpagerindicator.TitlePageIndicator.IndicatorStyle;
ScheduleListSubFragment:
调度片段适配器:
研究 我在stackOverFlow上做了一些挖掘,发现了一些相关的查询,这些查询并不完全相同,但无法得出解决方案
任何形式的帮助,都非常感谢。
android - ViewPager 中 Fragment 之间的通信
我正在尝试这样做:http ://android-er.blogspot.com/2012/06/communication-between-fragments-in.html 除了我使用的是 FragmentStatePagerAdapter
我有一个包含两个片段的活动(FragmentA和FragmentB)
FragmentA 有一个edittext 和一个按钮,FragmentB 有一个textview
现在我想要的是,每当我在编辑文本中输入内容并单击按钮时,我的文本视图上就会出现一些内容。
主要活动:
片段A:
片段B:
日志猫:
每当我单击第一个片段上的按钮时,我的应用程序就会崩溃。到底是什么问题?
android - Android - FragmentStatePagerAdapter:手动触发滑动/禁用滑动
好的,这基本上是我想要完成的事情:我有一个 FragmentStatePagerAdapter 并且希望偶尔禁用滑动功能并使用按钮前进/后退。
从我在 MyFragmentStatePagerAdapter 中的代码中截取的 A 扩展了 FragmentStatePagerAdapter :(适用于滑动,仅用于您的定位)
有什么建议么?我只需要停用滑动并使用 2 个按钮...
谢谢
android - 当我回到父片段的旧实例时,FragmentStatePagerAdapter 无法再次加载片段
设想:
我有一个片段,它有一个 ViewPager,其中包含具有不同值的单个片段的 5 个实例(不同),每个片段都有一个包含某种项目的列表。
问题:
当我单击 listView 的一个项目(例如在 page1 上)时,流程变得顺利,但是当我从那里返回按回时(在 main_activity 中覆盖 OnBackPressed(稍后将讨论)),viewPager 无法加载 subFragments。
但是当我切换到第 2 或第 3 页时,它会显示出来,而在返回到第 1 页时,它现在会显示出来。
OnBackPressed():
我在这里维护一个手动堆栈。当我单击 ListView 的一项时,当前的 Fragment 实例(当然是父 Fragment 的)进入堆栈。当用户回来时,该实例从堆栈中弹出,我在活动 FrameLayout 容器上替换它。
参考:
回到主 Fragment 实例后,FragmentStatePagerAdapter 没有重新创建 Fragment
伙计们,我真的很生气,请帮帮我。
android - 片段从 FragmentStatePagerAdapter 中消失
在我的应用程序中,我使用FragmentStatePagerAdapter
的是ViewPager
.
除了当我来自后台并且清理内存时,一切都运行良好。
在这种情况下,一些the fragments have disappeared
. 消失的碎片不可见,但确实采取了孔筛。我什么都看不见。
什么可能导致这种情况?
谢谢!
android - IllegalStateException:已添加片段 - 在 Android OS 4.3 上的应用程序启动期间
我的 Android 应用程序有一个单独的活动,其中一个选项卡控制器托管 4 个选项卡——每个选项卡都由一个片段表示。当我在运行 OS 4.03 的测试设备上运行该应用程序时,该应用程序可以运行,并且我可以导航到不同的选项卡等。当该应用程序在具有 OS 4.3 的设备上运行时,该应用程序在启动期间崩溃并出现 IllegalStateException: Fragment already added :MyFirstTabFragment。
这是堆栈跟踪:
java.lang.IllegalStateException:片段已添加:MyFirstTabFragment{41866dc0 #0 id=0x7f080000 MyFirstTabFragment} at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1128) at android.app.BackStackRecord.run(BackStackRecord.java:616)在 android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435) 在 android.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:474) 在 android.support.v13.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:167) 在android.support.v4.view.ViewPager.populate(ViewPager.java:1068) 在 android.support.v4.view.ViewPager.populate(ViewPager.java:914) 在 android.support.v4.view.ViewPager.onMeasure( ViewPager.java:1436) 在 android.view.view.measure(View.java:15848) 在 android.view。ViewGroup.measureChildWithMargins(ViewGroup.java:5012) at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) at android.view.View.measure(View.java:15848) at android.view.ViewGroup.measureChildWithMargins(ViewGroup .java:5012) 在 com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:302) 在 android.view.View.measure(View.java:15848) 在 android.view.ViewGroup.measureChildWithMargins(ViewGroup. java:5012) 在 android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 在 com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2189) 在 android.view.View.measure (View.java:15848) 在 android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1905) 在 android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1104) 在 android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1284) 在 android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004) 在 android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5481) 在android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) at android.view.Choreographer.doCallbacks(Choreographer.java:562) at android.view.Choreographer.doFrame(Choreographer.java:532) at android.view .Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) 在 android.os.Handler.handleCallback(Handler.java:730) 在 android.os.Handler.dispatchMessage(Handler.java:92) 在 android.os.Looper。在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 android.app.ActivityThread.main(ActivityThread.java:5103) 的 loop(Looper.java:137)。lang.reflect.Method.invoke(Method.java:525) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit. java:553) 在 dalvik.system.NativeStart.main(Native Method)
该问题似乎是由于尝试在我的 FragmentStatePagerAdapter 扩展类的 getItem() 方法中的 FragmentTransaction 中添加片段引起的,如下所示:
我调用 add() 的原因是我可以将标签与我的片段相关联,以便稍后访问这些片段,以便在选择/取消选择选项卡时调用这些片段实例上的方法。
我搜索了有关 IllegalStateException 的各种帖子,并尝试了各种建议,包括调用 replace() 而不是 add()、调用 remove() 然后调用 add()、调用 MyFirstTabFragment.instantiate() 而不是 new MyFirstTabFragment(),这些都没有更改已纠正了问题。
我怀疑我可能在此过程中过早地执行此 FragmentTransaction,因为当我尝试使用我的标签添加或替换片段时,ViewPager 当前正在添加片段。有没有人对此过程有更好的见解?有没有更好的地方可以让这些单独的 add() 调用来标记我的片段?
在此先感谢您的任何建议!
android - onswipe 恢复 Fragment 默认值
有很多线程在谈论这个,但我尝试了一切,但似乎没有用。我的问题有点简单,我有一个带有 5 个片段页面的 viewpager。
这个片段中的每一个都具有相同的布局,只有 1 个编辑文本,问题是如果我在 editext onswipe 上写一些内容到下一页或上一页,我想重置该 edittext。
例如:PAGE1:editext=2929 ---(swipe)--- PAGE2:edittext = 0 ----(swipe)--- PAGE1:edittext = 0
但它总是显示 2929。
我为我的应用程序执行此操作,我正在尝试在 teste 程序上执行此操作。
这是我的适配器
这是我的片段
我喜欢对按钮监听器做同样的事情,重置编辑文本,但不是点击它,而是滑动手势。
谢谢你,贡萨洛·莫拉
编辑:来自 fragment_one1 的 xml
查看寻呼机:
我尝试从 FragmentManger 中删除片段,
另外,tv.setOffscreenPageLimit(limit);,尝试了 FragmentStatePagerAdapter 和 FragmentPagerAdapter,我有状态,因为它破坏了片段,使用事件 onDetach()、onDestroy() 等,如果你看到片段的代码,你可以看到我的方法 onDetach (), notifydatasetchanged, 设置新的适配器。
android - PagerAdapter getCount() is called many times
I am using FragmentStatePagerAdapter
. for some reason the getCount() method is beeing called a lot of times before any fragment is even visible... Is it a normal behavior?
android - 未调用 FragmentStatePagerAdapter getCount()
我在我的应用程序中使用 FragmentStatePagerAdapter。我的问题是,当我执行 notifyDataSetChanged() 时,它只调用 getCount() 而不是 getItem()。getCount 不返回 0。这是我的 FragmentStatePagerAdapter:
怎么可能pagerAdapter.notifyDataSetChanged();
只调用了 getCount() 而getItem(int position)
没有调用它?谢谢!