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