我的应用程序包含两个选项卡,在两个选项卡内每个选项卡有4-5个嵌套片段,在嵌套片段内addtobackstack不工作?我怎样才能将嵌套片段添加到backstack中,因为当我在嵌套片段中单击后退按钮时,我的应用程序正在关闭,这意味着它正在调用super。onBackKeyPressed方法。
使用ChildFragmentManager检查活动选项卡是否有BackStackEntry,如果有,则弹出backstack else调用super。按ONBACKKEY键
此答案的完整描述:https://stackoverflow.com/a/37961649/4832356
您应该使用ChildFragmentManager
这是片段替换函数。
fun replace(fragment: Fragment){
childFragmentManager
.beginTransaction()
.replace(R.id.fragmentContainer, fragment)
.commit()
}
并重写大多数父片段中的onBackPressed方法。
override fun onBackPressed() {
val pop = childFragmentManager.popBackStackImmediate()
if (!pop){
super.onBackPressed()
}
}
我用kotlin写的,希望你能理解。如果你需要更多信息,请问我。
在您的活动中添加此代码
public void onBackPressed() {
FragmentManager fm = getSupportFragmentManager();
if (fm.getFragments() != null) {
for (Fragment frag : fm.getFragments()) {
if (frag.isVisible()) {
FragmentManager chilFrag = frag.getChildFragmentManager();
if (chilFrag.getBackStackEntryCount() > 0) {
chilFrag.popBackStack();
return;
}
}
}
}
super.onBackPressed();
}
我在StackOverflow上搜索了各种各样的答案,但找不到类似的答案。我知道如何刷新片段,但我不知道如何刷新实际上在选项卡布局中的片段。我有一个活动,我用viewpager实现了tablayout。我在tablayout的一个片段中看到了recyclerview。在“回收者”视图中,我有一个按钮可以重新加载页面。但问题是我重新加载了整个活动,然后看到了第一个选项卡。而recyclerview片
我的应用程序中有一个viewpager,它有7个片段,每个片段代表各自的逻辑 但是,有两个片段是相互耦合的,一个片段不能没有另一个片段而存在。 我有两个按钮,在屏幕底部的“上一个”和“下一个”,在片段之间切换。 我想使viewpager中的滑动无法到达其中一个耦合片段 现在我这样做:我把第一个片段(耦合的片段)放在位置0,第二个片段放在最后一个位置,这样当你左右滑动时,你就可以最后到达第二个耦合的
问题内容: 我实现了带有ViewPager和TabsAdapter的ActionBarSherlock。它运作良好,但是现在我试图从另一个表中的“标签1”中加载的框架中“推送”。 该行为应类似于: 我的应用程序中有3个选项卡,启动时会看到第一个选项卡,其中有一个带有按钮的片段 按下第一个选项卡上的按钮,应替换第一个选项卡上的片段,并显示另一个片段 我试图实现这一点,但是在更换时有一个黑色的片段。
我正在尝试添加卡片视图,但当我使用此依赖项添加库时:我收到以下错误: 错误:任务“:app:processDebugManifest”的执行失败。清单合并失败:属性元数据#android。支持VERSION@value值=(26.0.0-alpha1)来自[com.android.support:appcompat-v7:26.0.0-alpha1]AndroidManifest。xml:27:9
你好 我已经做了很长时间的编程,但刚刚开始为android开发,至少可以说它和c有很大的不同。。。 无论如何,我正在尝试实现一个带有一些选项卡的gui,它应该能够在向左/向右滑动时更改选项卡。这些选项卡是通过actionbar(确切地说是ActionBarSherlock)实现的,即使用支持库中的ViewPager进行滑动。单个选项卡是片段(SherlockFragment:s)。在底部应该有某种
需要帮助在视图寻呼机中的片段之间传递数据!我们尝试将数据作为包传递到片段中。碎片内部。方法,并尝试从另一个片段获取数据。getArguments()。 活动代码 片段代码: 在片段之间传递数据时需要帮助