草庐IT

fragmented

全部标签

使用 FragmentTransaction.replace() 时 Android fragment View 状态丢失

我遇到了一个很大的问题,我不太明白发生了什么。我正在开发一个使用Fragments(来自支持库)的应用程序,并使用FragmentTransaction.replace()将新的Fragments放到后台堆栈并替换旧的。代码如下所示:FragmentManagerfm=getSupportFragmentManager();FragmentTransactionft=ft.beginTransaction();//Animationsinmyres/animfolderft.setCustomAnimations(R.anim.slide_in_right,R.anim.slide_o

android - 如何暂停/恢复 fragment

背景:我编写了一个自定义容器,它能够容纳三个fragment。根据此容器的状态,只有两个或那三个fragment可见。为了通知fragment它们的可见性已更改,我尝试了两种选择:我调用Fragment.setUserVisibleHint()具有相应值的方法。托管fragment覆盖此方法并做出适当react。这成功了。我调用FragmentTransaction.hide()和FragmentTransaction.show()隐藏和显示fragment的方法。托管fragment覆盖Fragment.onHiddenChanged()并根据需要使用react。这也奏效了。我的问题

android - 处理已弃用的 fragment 事件 onAttach 和 onInflate 的正确方法是什么

我已经阅读了一些关于弃用代码的文章和答案(包括thisone),但我对如何处理(特别是)弃用的Fragment事件处理程序感到有点困惑onInflate。我已经替换了我的实现publicvoidonInflate(Activityactivity,AttributeSetattrs,BundlesavedInstanceState)与publicvoidonInflate(Contextcontext,AttributeSetattrs,BundlesavedInstanceState)如果我在如果我恢复原来的弃用代码(这样我现在就实现了两种方法),那么会调用弃用代码,返回正确的功能,

android - 如何深度链接到 Android 应用程序中的 fragment 。可能吗?

那么是否有可能深度链接到fragment中?所以我的主要Activity根据用户点击的内容启动不同的fragment。所以我使用list文件中的Intent过滤器为我的主要Activity创建了一个深层链接。但是你会如何为fragment做这个?任何帮助都会有帮助谢谢。 最佳答案 你当然可以做到这一点。您需要解析Activity中的Intent并使用fragment管理器来填充您想要的后期fragment。将Action和Fragment替换为您自己的。@OverrideprotectedvoidonNewIntent(finalI

android - 如何在嵌套 fragment 中的两个子 fragment 之间进行通信

我可以通过回调接口(interface)轻松地在Activity的两个fragment之间进行通信。按照这种方式,我在ParentFragment中实现了一个接口(interface)来进行通信。但是在Activity的情况下,我使用的是-@OverridepublicvoidonAttach(Activityactivity){super.onAttach(activity);try{mCallback=(OnHeadlineSelectedListener)activity;}catch(ClassCastExceptione){thrownewClassCastException

android - popBackStack导致反复调用fragment的oncreateView

我有3个fragmentA、B、C。我编写了一段代码来替换它们并维护后台堆栈:publicvoidaddFragment(FragmentfragmentToAdd,StringfragmentTag){FragmentManagersupportFragmentManager=getSupportFragmentManager();FragmentactiveFragment=getActiveFragment();FragmentTransactionfragmentTransaction=supportFragmentManager.beginTransaction();if(n

Android fragment 和依赖注入(inject)

正如标题所说,我正在尝试找出哪一个是在fragment中注入(inject)依赖项的最佳方式。我想独立于RoboGuice等外部框架。现在,以最简单的方式,我有一个抽象某种逻辑的接口(interface),并且我想从Activity注入(inject)该接口(interface)的实现。我知道我必须为我的fragment提供一个默认构造函数,因为系统可能需要在某个时候重新创建fragment,并且创建fragment的新实例的通常方法是提供处理创建的静态方法这个:publicstaticFragmentnewInstance(){finalBundlebundle=newBundle(

android - Snackbar 不移动放置在 Fragment 中的 FAB

有一个方案描述了我的应用程序的View层次结构。还有一些XML主Activity.CoordinatorLayout.FrameLayout内容fragment使用这段代码,我制作了SnackBar:Snackbarsnackbar=Snackbar.make(mainActivity.getCoordinatorLayout(),R.string.date_removed,Snackbar.LENGTH_LONG);我的问题是fab没有按我在ContentFragment中制作的SnackBar移动我还尝试将fab点作为Snackbar的View,但没有带来结果。

android - 删除 fragment 后内存未释放

我有一个Fragment,它有一个RecyclerView。在这个RecyclerView中,我可能会偶尔下载并显示图像(使用Glide加载到ImageView中。因此,当我打开Fragment时,使用的内存有时可能会从30MB左右跳到100MB左右甚至更多。持有Fragment的Activity完成后,内存不会释放。它和以前一样。我检查了Glide文档,显然我们不必担心释放RecyclerView中的Bitmaps。这是一个很大的问题,因为应用程序经常因此而因OOM而崩溃。当Fragment被删除时,我应该如何正确处理释放内存?编辑:另一个观察结果我注意到的另一件事是,如果我完成Ac

android - 什么时候 fragment 最终附加到 Activity ?

我有一个主fragment,里面有一个viewpager。这个viewpager有2个页面(列表fragment)。当我开始Activity时,会显示主要fragment,并且还会显示第一个分页fragment。此分页fragment使用AsyncTask显示来自数据库的数据。在我的主要fragment中:@OverridepublicvoidonViewCreated(Viewview,BundlesavedInstanceState){super.onViewCreated(view,savedInstanceState);onPageSelected(0);}@Overridep