android导航选项卡,android – 选项卡式操作栏内的片段导航

编程入门 行业动态 更新时间:2024-10-08 18:31:45

android导航<a href=https://www.elefans.com/category/jswz/34/1771007.html style=选项卡,android – 选项卡式操作栏内的片段导航"/>

android导航选项卡,android – 选项卡式操作栏内的片段导航

问题

在我描述我当前的设置之前,我将描述我的问题.我需要在单独的标签内的片段之间进行分层导航.假设我在选项卡中向下钻取,我然后切换选项卡,然后返回到第一个原始选项卡,我需要它在钻取的下层,然后能够返回到顶层标签.

现在进入我的设置.

我有一个名为MainActivity的活动的应用程序.此活动控制我的选项卡式操作栏.我选择了一个选项卡时,我已经按照许多不同的教程来处理片段的切换,下面的代码可以引起您对onTabSelected和onTabUnselected方法的注意.

MainActivity – 标签监听器

public static class MyTabListener implements ActionBar.TabListener {

private final Activity mActivity;

private final String mTag;

private final Class mClass;

private final Bundle mArgs;

private Fragment mFragment;

public MyTabListener(Activity activity,String tag,Class clz) {

this(activity,tag,clz,null);

}

public MyTabListener(Activity activity,Class clz,Bundle args) {

mActivity = activity;

mTag = tag;

mClass = clz;

mArgs = args;

// Check to see if we already have a fragment for this tab,probably

// from a previously saved state. If so,deactivate it,because our

// initial state is that a tab isn't shown.

mFragment = mActivity.getFragmentManager().findFragmentByTag(mTag);

if (mFragment != null && !mFragment.isDetached()) {

FragmentTransaction ft = mActivity.getFragmentManager().beginTransaction();

ft.detach(mFragment);

ftmit();

}

}

public void onTabSelected(Tab tab,FragmentTransaction ft) {

Log.e("FRAGMENT","Selected Fragment With Tag " + mTag);

if (mFragment == null) {

mFragment = Fragment.instantiate(mActivity,mClass.getName(),mArgs);

ft.add(android.R.id.content,mFragment,mTag);

} else {

ft.attach(mFragment);

}

}

public void onTabUnselected(Tab tab,FragmentTransaction ft) {

if (mFragment != null) {

ft.detach(mFragment);

}

}

public void onTabReselected(Tab tab,FragmentTransaction ft) {

Toast.makeText(mActivity,"Reselected!",Toast.LENGTH_SHORT).show();

}

}

当我在Tab1上查看Fragment1’时,当按下一个按钮时,我会显示另一个我需要能够返回的FragmentcalledFragment2`.下面的代码可以工作,如果我只是停留在该选项卡上,但是当从选项卡导航并返回到它时,一切都搞砸了.

MainActivity – 显示第二个片段

Fragment tdFrag = Fragment.instantiate(this,SecondFragment.class.getName());

FragmentTransaction ft = getFragmentManager().beginTransaction();

ft.replace(android.R.id.content,tdFrag,"secondfrag");

ft.addToBackStack(null);

ftmit();

我的想法

我认为这必须是我分离片段并在按下新标签时处理切换的方式.也许我需要为每个选项卡实现一些存储每个单独的backstack并从中加载片段而不是系统后端堆栈的方法?

任何帮助都会很棒.我试图尽可能彻底和简单地解释它.

提前致谢.

更多推荐

android导航选项卡,android – 选项卡式操作栏内的片段导航

本文发布于:2024-02-06 09:13:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1747912.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:选项卡   片段   选项   栏内   操作

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!