从全屏活动开始新活动会导致状态栏覆盖操作栏

时间:2013-10-14 10:59:59

标签: android android-actionbar actionbarsherlock statusbar

我正在使用ActionBarSherlock lib。我有CameraActivity,其样式设置为全屏:

<activity
   android:name="pl.toptof.android.ui.activity.CameraActivity"
   android:theme="@style/Theme.Styled.NoActionBar.fullScreen"
   android:screenOrientation="portrait">
</activity>

当我从这个活动开始新活动时:

Intent intent = new Intent(CameraActivity.this, PreviewActivity.class);
intent.putExtra("PhotoURI",takenPhotoURL);
intent.putExtra("voteID",voteId);
CameraActivity.this.startActivity(intent);

活动看起来像是保持全屏模式并且状态栏可见,并覆盖我的操作栏。预览活动的主题是:

<application
        android:name="(...)"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:hardwareAccelerated="true"
        android:theme="@style/Theme.Styled">

<activity
            android:name="pl.toptof.android.ui.activity.PreviewActivity"
            android:screenOrientation="portrait">
</activity>

问题仅出现在Sony Xperia Z设备上。在HTC Legend,HTC One,Nexus 4,三星Galaxy S3,Nexus 7,三星Galaxy Note上它运行良好。并且它的屏幕:
status bar covers action bar

任何想法如何解决?

1 个答案:

答案 0 :(得分:2)

问题得到解决。我所做的是:

我已经通过

修改了这种开始新活动的方式
Intent intent = new Intent(CameraActivity.this, PreviewActivity.class);
intent.putExtra("PhotoURI",takenPhotoURL);
intent.putExtra("voteID",voteId);
CameraActivity.this.startActivity(intent);

添加

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
在startActivity方法之前

。这有点棘手,但状态栏在活动结束前滑落,一切正常。当我再次返回/启动CameraActivity时,它会再次获得FLAG_FULLSCREEN onCreate。