相关疑难解决方法(0)

使用导航抽屉处理片段后栈

我正在实施导航抽屉,效果很好.所以我在导航抽屉点击上调用片段,它也在工作,而且我正在调用主页片段中的另一个片段,并为每个片段维护后台堆栈,但问题是从子片段重新按下我不能去主页片段,刚退出应用程序.我不想要这个.我想要什么点击

Navigation Drawer->HomePageFragment->AnotherChild Fragment(On List Item click of HomePageFragment)
Run Code Online (Sandbox Code Playgroud)

但在背面按下而不Homepage会将其直接退出应用程序.这是我的代码:(In Fragment Activity with Navigation Drawer)

class SlideitemListener implements ListView.OnItemClickListener {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {

        updateDisplay(position);
    }

}

private void updateDisplay(int position) {
    Fragment fragment = null;
    switch (position) {
    case 0:
        fragment = new ScheduleFragment();
        break;
    case 1:
        fragment = new Result_Fragment();
        break;
    case 2:
        fragment = new Live_Match_Fragment();
        break;
    case 3:
        // fragment = new Live_Match_Fragment();
        break;

    case …
Run Code Online (Sandbox Code Playgroud)

android android-fragments

14
推荐指数
1
解决办法
3万
查看次数

如何只保留第一个添加的片段在后栈(片段重叠)?

我想要实现的场景:

  1. 使用两个框架容器加载活动(有关项目列表和详细信息).
  2. 在应用启动时,在listFrame中添加listFragment,在detailsFrame容器中添加一些初始infoFragment.
  3. 浏览列表项而不将每个详细信息事务添加到后台堆栈(只想在堆栈中保留infoFragment).
  4. 一旦用户点击后退按钮(向后导航),他就会回退到初始信息片段,在发布时间添加内容.
  5. 如果顺序返回导航,则应用程序退出.

我的代码:

        protected override void OnCreate(Bundle savedInstanceState)
        {
...
            var listFrag = new ListFragment();
            var infoFrag = new InfoFragment();
            var trans = FragmentManager.BeginTransaction();
            trans.Add(Resource.Id.listFrame, listFrag);
            trans.Add(Resource.Id.detailsFrame, infoFrag);
            trans.Commit();
...
        }

        public void OnItemSelected(int id)
        {
            var detailsFrag = DetailFragment.NewInstance(id);
            var trans = FragmentManager.BeginTransaction();
            trans.Replace(Resource.Id.detailsFrame, detailsFrag);
            if (FragmentManager.BackStackEntryCount == 0)
                {
                    trans.AddToBackStack(null);
                }
            trans.Commit();
        }
Run Code Online (Sandbox Code Playgroud)

我的问题:

在按下后退按钮后,infoFrag与之前的detailFrag重叠!为什么?

android

9
推荐指数
3
解决办法
2万
查看次数

标签 统计

android ×2

android-fragments ×1