问题标签 [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.
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" />
片段的相关代码:
适配器部分:
android - 带有片段的 Viewpager:所有片段都没有调用 onAttached?
我一直在使用 Robospice 来完成我的网络操作。在 Robospice 中,他们建议SpiceService
(android 服务类的扩展)在片段的onAttach()
方法中启动:
其他解决方案是使用第二种方法,即自己 进入
SpiceManager
并Fragment.onAttach(...)
释放SpiceManager
Fragment.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 方法?
android - 将 GoogleApiClient 绑定到 Fragment 生命周期是否正确
使用后startResolutionForResult
,onActivityResult 方法将在拥有 Fragment 的 Activity 内调用,而不是在 Fragment 本身内调用。这个答案也说:
Google Play 游戏服务 API 应该绑定到 Activity 的生命周期,而不是 Fragment 的生命周期。
这对 GoogleApiClient 也有效吗?
android - 将 onActivityResult() 数据传递给尚未准备好的同一个 Fragment
我正在使用 aFragment
开始一个新的Activity
using startActivityForResult()
,我在 () 方法中得到结果。因为 ()(Bundle)
在( ) 之前调用过。我想确保,我正确保存/保存,以便在被调用时得到保存/保存的结果以执行进一步的操作。onActivityResult
onActivityResult
onResume
Bundle
Fragment's
onResume()
实现这一目标的不同方法是什么。我尝试使用 getArguments()/setArguments(),但这似乎不是实现这一目标的正确方法。
android - API 驱动的应用程序 - 嵌套片段 - 在哪里进行 API 调用?onStart v/s onCreateView on onResume
我的应用程序有一个活动,它为每个选项卡的内容使用 TabLayout 和 1 个片段。这些片段中的一些片段内具有子选项卡和相应的子片段。
这些片段中的每一个都依赖于 API 调用来呈现它们的视图。我希望这些片段只进行一次这些 API 调用并呈现它们的视图。如果用户切换到另一个选项卡并返回,这些片段应该只显示他们第一次呈现的视图(有一些特殊情况会触发新的 API 调用,但这些情况很少见,可以在 onResume 中处理,我认为)。
为了实现这一点,进行第一次 API 调用的最佳位置是什么?创建视图?或 onStart 或 onResume 或其他一些生命周期方法?
android - 尝试从 arrary 填充 Fragmenrt 上的 Xamarin Android TextView 时,对象引用未设置为对象的实例
System.NullReferenceException: Object reference not set to an instance of an object
当我尝试TextView
从我的片段中引用 a 时出现错误。它发生在运行时。
分段
看法
我知道我想要实现的目标可以用回收器视图来实现,但我还没有完全理解,因为我是一个初学者程序员。
android - 从第二个活动返回后调用 onCreateView
我有 MainActivityFragment 从我用下面的代码开始 DetailActivity :
从我的 DetailActivity 之后,我使用以下代码开始我的 DetailActivityFragment:
我还在我的 MainActivityFragment 中保留了实例状态。但是,在从 DetailActivityFragment 中单击返回按钮时,调用了 MainActivityFragment 的 onCreateView 方法,并且我无法恢复实例状态,因为未执行 saveInstanceState 方法,因此 savedInstanceState 为空。我很好奇为什么会这样。这在其他具有相同逻辑的项目中不会发生。如果有人能帮助我,我将不胜感激。
android - 在 Android 应用程序的片段生命周期中,onCreate() 方法究竟会做什么
我对 Activity 和 Fragment 中的 onCreate() 方法感到困惑。onCreate() 将在 Fragment 中做什么以及 Activity 和 Fragment 之间的 onCreate() 方法有什么区别。请帮助我自己学习。
谢谢......
android - 在哪里放置“ViewPager.setCurrentItem()”方法
我嵌套了Fragments
[1 个Fragment
名为“MainFrag”的主程序和许多子程序Fragments
],该应用程序可以显示 MainFrag 或可以显示其他片段。
我想要做的是每次用户选择显示 MainFrag 时的 MainFrag,所以我试图把它放在它的位置setCurrentItem
,但这仅适用于用户第一次显示 MainFrag,就好像用户选择另一个片段然后重新选择 MainFrag不工作ViewPager
onCreateView
seCurrentItem
我还尝试将它放在 MainFrag 中onResume
,它按要求工作,但它也会导致一个问题,如果用户将应用程序移到后台然后重新打开它 viewPager 将滚动,我不想要这个
那么我到底可以放在setCurrentItem
哪里?
编辑:我正在使用导航菜单在 MainFrag 是其中之一的 3 个主要片段之间移动。
android - 片段侦听器上的 NullPointerException
我有一个带有 ViewPager 的活动,在 ViewPager 适配器中我为每个位置提供片段。
一个示例片段是 DebugFragment。我在下面写了源代码。
我的活动实现如下。
我从 Fragment 的 onResume、BroadcastReceiver、Activity 的 OnActivityResult 调用我的 DebugFragment 的 getUserData。
有时我在尝试访问 FragmentListener 即 mListener 时在 getUserData 中得到 NullPointerException。我想知道为什么?
因为我已经在检查 Activity null 了。这还不够吗。我还必须检查 mListener 的 null 吗?如果有人能向我解释活动不会为空但我的 mListener 将为空的情况,那就太好了。我只将我的活动保持在纵向模式。
编辑
我的适配器代码
从我的活动中,我称之为