编程语言
首页 > 编程语言> > android-片段在应用程序恢复后不显示标题?

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