问题标签 [fragment-lifecycle]

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 投票
1 回答
2342 浏览

android - ViewPager 不显示第一个片段,如果它的内容是动态加载的

在android应用程序中构建带有片段的viewPager时,我遇到了一个非常奇怪的问题。我有一个活动,它构建布局和两个片段:每个片段都包含 RecyclerView 并从服务器动态加载其内容。当我用 Fragments 的静态内容对其进行测试时,一切都很好,但是当我切换到预先测试和工作的动态内容 Fragments 时,ViewPager 永远不会加载第一个,只会加载第二个。如果我交换它们,viewPager 仍然只加载第二个。在第一个选项卡中,我总是只看到一个白色的空白字段。任何帮助将不胜感激。

活动部分:

活动布局:

片段布局:

<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/contacts_list" android:layout_width="fill_parent" android:layout_height="match_parent" />

片段的相关代码:

适配器部分:

0 投票
0 回答
337 浏览

android - 带有片段的 Viewpager:所有片段都没有调用 onAttached?

我一直在使用 Robospice 来完成我的网络操作。在 Robospice 中,他们建议SpiceService(android 服务类的扩展)在片段的onAttach()方法中启动:

其他解决方案是使用第二种方法,即自己 进入SpiceManagerFragment.onAttach(...)释放SpiceManagerFragment.onDetach()

https://github.com/stephanenicolas/robospice/wiki/Advanced-RoboSpice-Usages-and-FAQ

所以我一直在尝试这样做,但我发现有时onAttach()当您使用带有Viewpager. 我创建了一个显示此问题的 github 存储库:

https://github.com/Winghin2517/ViewPagerFragmentSample

在我的 github 存储库中,我有 3 个片段和一个 viewpager。onAttach当每个片段的方法被调用并且结果不稳定时,我正在记录。关闭应用程序并重新启动它有时会产生这种情况:

或者只是这个:

我正在记录public void onAttach(Context context)调用 api 23 的时间(这在日志中显示为“onAttachedContext”)以及何时public void onAttach(Activity activity)调用低于 23 的 api(这在日志中显示为“onAttachedActivity”),即使我正在使用支持库23.

每次应用程序启动时很少调用所有 3 个片段的onAttach方法,这意味着我用于网络操作的 robospice 服务也没有启动,偶尔会导致应用程序挂起。

如何让应用程序在启动时为所有片段调用所有 onAttach 方法?

0 投票
1 回答
514 浏览

android - 将 GoogleApiClient 绑定到 Fragment 生命周期是否正确

使用后startResolutionForResult,onActivityResult 方法将在拥有 Fragment 的 Activity 内调用,而不是在 Fragment 本身内调用。这个答案也说:

Google Play 游戏服务 API 应该绑定到 Activity 的生命周期,而不是 Fragment 的生命周期。

这对 GoogleApiClient 也有效吗?

0 投票
1 回答
849 浏览

android - 将 onActivityResult() 数据传递给尚未准备好的同一个 Fragment

我正在使用 aFragment开始一个新的Activityusing startActivityForResult(),我在 () 方法中得到结果。因为 ()(Bundle)在( ) 之前调用过。我想确保,我正确保存/保存,以便在被调用时得到保存/保存的结果以执行进一步的操作。onActivityResultonActivityResultonResumeBundleFragment's onResume()

实现这一目标的不同方法是什么。我尝试使用 getArguments()/setArguments(),但这似乎不是实现这一目标的正确方法。

0 投票
1 回答
589 浏览

android - API 驱动的应用程序 - 嵌套片段 - 在哪里进行 API 调用?onStart v/s onCreateView on onResume

我的应用程序有一个活动,它为每个选项卡的内容使用 TabLayout 和 1 个片段。这些片段中的一些片段内具有子选项卡和相应的子片段。

这些片段中的每一个都依赖于 API 调用来呈现它们的视图。我希望这些片段只进行一次这些 API 调用并呈现它们的视图。如果用户切换到另一个选项卡并返回,这些片段应该只显示他们第一次呈现的视图(有一些特殊情况会触发新的 API 调用,但这些情况很少见,可以在 onResume 中处理,我认为)。

为了实现这一点,进行第一次 API 调用的最佳位置是什么?创建视图?或 onStart 或 onResume 或其他一些生命周期方法?

0 投票
1 回答
3263 浏览

android - 尝试从 arrary 填充 Fragmenrt 上的 Xamarin Android TextView 时,对象引用未设置为对象的实例

System.NullReferenceException: Object reference not set to an instance of an object当我尝试TextView从我的片段中引用 a 时出现错误。它发生在运行时。

分段

看法

我知道我想要实现的目标可以用回收器视图来实现,但我还没有完全理解,因为我是一个初学者程序员。

0 投票
1 回答
787 浏览

android - 从第二个活动返回后调用 onCreateView

我有 MainActivityFragment 从我用下面的代码开始 DetailActivity :

从我的 DetailActivity 之后,我使用以下代码开始我的 DetailActivityFragment:

我还在我的 MainActivityFragment 中保留了实例状态。但是,在从 DetailActivityFragment 中单击返回按钮时,调用了 MainActivityFragment 的 onCreateView 方法,并且我无法恢复实例状态,因为未执行 saveInstanceState 方法,因此 savedInstanceState 为空。我很好奇为什么会这样。这在其他具有相同逻辑的项目中不会发生。如果有人能帮助我,我将不胜感激。

0 投票
1 回答
272 浏览

android - 在 Android 应用程序的片段生命周期中,onCreate() 方法究竟会做什么

我对 Activity 和 Fragment 中的 onCreate() 方法感到困惑。onCreate() 将在 Fragment 中做什么以及 Activity 和 Fragment 之间的 onCreate() 方法有什么区别。请帮助我自己学习。

谢谢......

0 投票
3 回答
414 浏览

android - 在哪里放置“ViewPager.setCurrentItem()”方法

我嵌套了Fragments[1 个Fragment名为“MainFrag”的主程序和许多子程序Fragments],该应用程序可以显示 MainFrag 或可以显示其他片段。

我想要做的是每次用户选择显示 MainFrag 时的 MainFrag,所以我试图把它放在它的位置setCurrentItem,但这仅适用于用户第一次显示 MainFrag,就好像用户选择另一个片段然后重新选择 MainFrag不工作ViewPageronCreateViewseCurrentItem

我还尝试将它放在 MainFrag 中onResume,它按要求工作,但它也会导致一个问题,如果用户将应用程序移到后台然后重新打开它 viewPager 将滚动,我不想要这个

那么我到底可以放在setCurrentItem哪里?

编辑:我正在使用导航菜单在 MainFrag 是其中之一的 3 个主要片段之间移动。

0 投票
4 回答
1840 浏览

android - 片段侦听器上的 NullPointerException

我有一个带有 ViewPager 的活动,在 ViewPager 适配器中我为每个位置提供片段。

一个示例片段是 DebugFragment。我在下面写了源代码。

我的活动实现如下。

我从 Fragment 的 onResume、BroadcastReceiver、Activity 的 OnActivityResult 调用我的 DebugFragment 的 getUserData。

有时我在尝试访问 FragmentListener 即 mListener 时在 getUserData 中得到 NullPointerException。我想知道为什么?

因为我已经在检查 Activity null 了。这还不够吗。我还必须检查 mListener 的 null 吗?如果有人能向我解释活动不会为空但我的 mListener 将为空的情况,那就太好了。我只将我的活动保持在纵向模式。

编辑

我的适配器代码

从我的活动中,我称之为