ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

android-片段在应用程序恢复后不显示标题?

2019-11-23 05:26:56  阅读:159  来源: 互联网

标签:android-fragments android-actionbar actionbarsherlock android


我有一个奇怪的问题,从未在SO上任何地方见过,所以我求助于此,希望我能说得足够清楚.

我有一个简单的SherlockFragmentActivity,如下所示,其中包含三个片段,它们全部在其onCreateOptionsMenu()中调用getActivity().setTitle(),从而允许我的应用根据可见的片段来更改标题.

这可以按预期工作,但是由于某些原因(也许无关),当我通过HOME按钮退出应用程序时,有时在重新打开应用程序时看不到标题.看来我应该关闭我的应用程序并重新打开它,这很好,但是在离开它一段时间后,当我重新打开它时标题不会出现.

我完全不知道是什么原因造成的,因此不胜感激.我的应用程序的布局(与该问题有关)是一个基本的初始屏幕(作为活动),带有加载栏,然后打开以下FragmentActivity:

import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockFragmentActivity;

import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import static java.lang.Math.*;

public class FragmentControl extends SherlockFragmentActivity {

    private static final int NUM_PAGES = 3;

    private ViewPager mPager;

    private PagerAdapter mPagerAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_control);

        ActionBar action = getSupportActionBar();
        action.setDisplayShowTitleEnabled(true);
        action.setDisplayShowHomeEnabled(false);

        mPager = (ViewPager)findViewById(R.id.pager);
        mPagerAdapter = new FragmentControlAdapter(getSupportFragmentManager(), NUM_PAGES);
        mPager.setAdapter(mPagerAdapter);
        // If this activity wasn't called after a reload
        if((Integer)getIntent().getExtras().get("current") == null){
            // Always start on the middle page, or as close as possible
            mPager.setCurrentItem((int) ceil(NUM_PAGES/2));
        // Otherwise start on the page we left for a smoother experience
        } else {
            mPager.setCurrentItem((Integer)getIntent().getExtras().get("current"));
        }
    }
}

只有当应用程序重新打开到FragmentActivity时,我才看到此问题,当在其他任何地方重新打开并导航到该活动时,就可以了(如您所愿).

感谢您提供所有帮助,希望我已明确说明.

哦,如果有问题,我目前的目标是对API 17的支持最少,对API 8的支持.我看到此问题的测试电话是HTC One S-尚不确定在其他设备上,但我将开始寻找.

解决方法:

occasionally (…) after leaving it for a while

听起来您的应用程序进程同时被杀死了.

确保使用onSaveInstanceState保存实例状态(如显示的标题),并将其还原到Activity.onCreate或Fragment.onViewCreated中.

标签:android-fragments,android-actionbar,actionbarsherlock,android
来源: https://codeday.me/bug/20191123/2065286.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有