问题标签 [fragmenttransaction]
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 - 按下后退按钮后调用的片段 onStart 和 onCreateActivity
场景:
我有一个单曲Activity
,multiple fragments
我是replacing
一个片段,另一个片段使用fragment transaction
并将它们添加到BackStack
. 我正在对一些片段进行 JSON 解析和网络相关任务。
问题:
我的问题是,当我按下后退按钮导航到最后一个片段时替换片段后,再次调用onStart
和onActivityCreated
方法。我在这些事件中的代码每次执行时navigate
都会fragment
使用back button
但是EditText
即使在replacing
片段之后并使用后退按钮返回它,
任何值都保持不变。
为什么每次都执行onStart
?onActivityCreated
有没有什么方法可以让我的代码在返回片段后不执行?
更新 基本上我想在创建片段后设置一个按钮文本。用户可以更改该文本。但是当我返回该片段时,用户值会随着我在片段创建时设置的默认文本而改变。
谢谢
android-fragments - Android 应用程序在 FragmentTransaction.replace 上崩溃
我正在尝试使用 support.v4 库创建一个动态 UI,以将片段插入到我为主要活动定义的框架布局中。
这是我的activity_main.xml:
这是 MainActivity.java:
这是我的 FragmentPhone 类:
当我启动应用程序时,xml 正确加载并且框架布局被 fragmentPhone 填充,但按下任何按钮都会创建一个“应用程序已意外停止”对话框并提示我强制关闭。
任何想法或建议将不胜感激。谢谢!
android - 在使用 addToBackStack 的 Fragment 事务后单击返回按钮不会执行任何操作
我希望能够replace
FragmentTransaction
通过使用来反转 a addToBackStack()
:
但在那之后,单击后退按钮什么也不做。
从文档中,它应该撤销交易。
我错过了什么?
android - 片段生命周期 - 在显示/隐藏时调用哪个方法?
我正在使用以下方法通过显示/隐藏片段在片段(在我的 NavigationDrawer 中)之间进行切换。
我不清楚的是当我显示或隐藏片段生命周期时调用了哪个方法?(因为没有诸如 onShow() 或 onHide() 之类的方法,所以我不太确定要使用什么)。我想在显示和隐藏某个片段时执行特定操作。
android - 如何修复 InstantiationException,无法实例化 Fragment?
这是我的第一篇文章,所以我提前道歉......
我正在尝试编译一个简单的抽屉示例/实践应用程序。但是,当我单击列表视图中的项目时,它会崩溃。Logcat 说它无法从 android.app.Fragment 实例化。我也尝试过使用 android.support.v4 库——假设我正确地实现了它,这是可疑的——结果相同。坦率地说,我不确定有什么区别。我完全被难住了。请帮忙!
主要活动:
xml:
日志猫:
显现:
android - 如何用片段替换 ViewPager
我有以下布局
Everyting 很好,但我想用 Fragment 替换 ViewPager
这不是重新调整 ViewPager 我该怎么办???
android - 如何替换不同类型的 Fragment?
早上好。我正在开发一个应用程序,其中我有一个从活动扩展的主布局,在这个里面我有一个数据类型的片段,在我的例子中是 FragmentCover(它是一个类)。
在我的应用程序中,我按下一个按钮,我想将此片段布局更改为从片段扩展但类型不同的另一个布局,称为 SongList。
我的问题是我已经为 Cover 类定义了这个片段,当我更改时我没有任何问题,但是当我想获取视图并设置为我的类的一个变量时,songList = (ListView) getView().findViewById(R.id.songList);
它的功能是 null 并且它给出我的错误。
我把它放在这里我做什么。
布局
主类变化
问题不是变化,而是当我尝试创建 findViewById 时,可能是因为它没有加载与 FragmentSongList 关联的视图。
android - Android Fragments - 多个选项卡/页面流,自定义 backstack
我遇到了片段的内存问题,我可以使用一些帮助来确定适当的路径。我不能使用简单的 backstack,因为应用程序需要保留用户在应用程序中采用的多个路径(并且用户可以来回跳转)。导航以这种方式处理片段:
我认为对我的情况有帮助的是暂时销毁片段的视图,然后在将片段放回视图时重新创建(而不是简单地从用户的视图中隐藏 UI)。从阅读 API 来看,这听起来不像是 hide 方法。有谁知道 FragmentTransaction/FragmentManager/Fragment 类是否有一些内置方法可以让我这样做?
我正在考虑的另一个选择是为每个片段创建自己的生命周期。我也探索过使用 tabhost,但它似乎不会解决内存问题。如果您有其他想法,我愿意接受。
谢谢大家,我很感激你的帮助。
android - 多次调用 FragmentTransaction.replace() - 方向改变后只有一个有效
我正在使用以下代码用 2 个片段填充我的 UI,容器是FrameLayout
在 XML 中定义的。这是第一次调用此代码,即当应用程序启动时,它工作正常,并且我的两个片段都按预期显示。但是,在配置更改(特别是方向)之后,仅显示事务中的第一个片段。
我认为这不是片段本身的问题,因为如果我反转代码以便在另一个之前调用一个替换,反之亦然,将显示该片段。因此,例如,以下面的代码片段为指导,如果我交换 mSummary 和 mDetails 替换调用,则将显示 mDetails 而不会显示 mSummary。
丢失的总是块中的第二个。
我正在保存片段并从重新创建活动时onSaveInstanceState
恢复它们。Bundle savedInstanceState
我还尝试通过调用commit()
然后获取另一个FragmentTransaction
对象将事务分成两部分,但那里没有乐趣。