我有一个奇怪的问题,我从未在 SO 上的任何地方看到过,所以我求助于在这里发帖,希望我说得足够清楚。
我有一个简单SherlockFragmentActivity
的,如下图所示,其中包含三个片段,它们都调用getActivity().setTitle()
它们onCreateOptionsMenu()
允许我的应用程序根据哪个片段可见来更改标题。
这可以按需要工作,但是由于某种原因(可能不相关),当我通过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 - 还不确定在其他设备上,但我要开始寻找.