我想要达到的目的是,除非他按下其中一个提供的按钮,否则用户不能退出活动。
我已经抓住了主页和后退按钮,但是当我尝试删除状态栏时,我的问题就开始了。
我想拥有以下其中一项:
如果我选择解决方案1,如果我的应用程序正在运行并且Activity1显示状态栏,则状态栏下显示活动2,状态栏覆盖活动2的顶部,这是不可能的 除非我从另一个应用程序启动Activity2,然后Activity2没有显示状态栏。 我做错了什么?
AndroidManifest.xml的一部分:
<activity
android:label="@string/app_name"
android:launchMode="standard"
android:name=".Activity1"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Black.NoTitleBar" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
<activity
android:label="@string/app_name"
android:launchMode="standard"
android:name=".Activity2"
android:noHistory="true"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
<intent-filter >
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.MONKEY" />
</intent-filter>
</activity>
答案 0 :(得分:2)
答案 1 :(得分:1)
我必须在android中启动我的活动:launchMode =“singleInstance”,在OnAttachedToWindow()中我必须调用this.getWindow()。setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 现在,即使同一应用程序中的其他活动显示状态栏,也不会显示状态栏。
答案 2 :(得分:1)
要检查状态栏的可见性,请尝试以下代码:
public boolean isStatusBarVisible() {
Rect rectangle = new Rect();
Window window = getActivity().getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectangle);
int statusBarHeight = rectangle.top;
return statusBarHeight != 0;
}