当我从片段B回到片段A时,actionbar标题应该是“fraga”,但它仍然是“fragb”。问题是add方法片段A没有重新创建,我没有找到事件来刷新它。
目前我找到的唯一简单的解决方案是:
1-fragb.onResume:保存上一个操作栏标题
您可以重写活动的onbackpressed
,每次按下它时,您都会从backstack中获取片段的名称,以知道您当前位于哪个片段。
示例:
@Override
public void onBackPressed() {
super.onBackPressed();
int framentCount = this.getFragmentManager().getBackStackEntryCount();
if(framentCount != 0)
{
FragmentManager.BackStackEntry backEntry=getFragmentManager().getBackStackEntryAt(framentCount-1);
String str=backEntry.getName(); //the tag of the fragment
if(str.equals("fragA"))
//set the actionbar title to FragA
else if(str.equals("fragB"))
//set the actionbar title to FragB
}
FragA myFragA = (FragA)getFragmentManager().findFragmentByTag("MY_FRAGMENTA_A_TAG");
if (myFragA.isVisible()) {
//action bar.title="title first fragment"
}
}
现在,要知道哪个片段是哪个片段,您需要在将其添加/替换到backstack时为其添加一个标记。还要确保调用AddToBackStack
将片段放入BackStack。
FragmentTransaction.add(int containerViewId, Fragment fragment, String tag)
FragmentTransaction.replace(int containerViewId, Fragment fragment, String tag)
我有一个标志/书签按钮在行动栏,我想切换或关闭,取决于哪个片段是在视图页的视图。 如果用户在ViewPager中标记了一个片段,则该片段将被设置为Enabled。当用户滑到下一个,我希望动作栏按钮更新为未标记。现在,我可以通过有两个菜单项来改变按钮的状态,并隐藏一个,单击时显示一个。 我怎么能这么做?我应该在哪个级别访问操作栏;活动、PagerAdapter还是片段?
问题内容: 如何从片段(android.support.v4.app.Fragment)中访问ActionBar。我正在使用Android支持库v4和v7。我没有使用Sherlock库。 承载片段的活动是ActionBarActivity。 我已经阅读了Android帮助片段Fragment,它也导致了我getActivity(),但是没有getSupportActionBar()方法。 问题答案
如何从片段(android.support.v4.app.Fragment)中访问ActionBar。我正在使用Android支持库v4和V7。我不会用夏洛克图书馆的。 承载该片段的活动是ActionBarActivity。 我阅读了Android帮助部分的片段,它也引导了我getActivity(),但是没有getSupportActionBar()方法。
当我向上选择选项卡时,它起作用,但当我返回时,内容变成白色。LogCat显示: 致命异常:main java.lang.IllegalArgumentException:在Android.support.v4.app.FragmentManagerImpl.MoveToState(FragmentManager.java:903)在Android.support.v4.app.FragmentMa
本文向大家介绍android-fragments 添加片段,包括了android-fragments 添加片段的使用技巧和注意事项,需要的朋友参考一下 示例 静态添加片段 文件:activity_main.xml 文件:fragment1.xml 文件:fragment2.xml 文件:MainActivity.java 文件:Fragment1.java 文件:Fragment2.java 动态