我正在为受限模式下的 HP Slate 7 开发一个 android 应用程序(创建了一个对资源的访问受限的新用户配置文件)。该应用程序需要全屏显示,因此我使用 View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 隐藏状态和导航栏,当我运行应用程序时,屏幕看起来冻结并且不响应触摸(我无法单击屏幕上的按钮)。当我从下向上滑动以查看导航栏时,屏幕看起来栩栩如生,我可以按下按钮。(这对我的应用程序用户来说并不理想,因为我不希望他们每次都从下到上滑动屏幕来访问屏幕,因为它是糟糕的用户体验)。
所以我的问题是 HP slate 和 nexus 的受限模式之间会有什么不同,以至于我的应用程序可以在 nexus 上运行而不能在 HP 上运行。请建议是否有任何方法可以解决此问题。
PS1:我使用如下所示的 onTouchEvent 方法来捕获屏幕上任意位置的触摸事件,但该方法没有被调用。
PS2:这只发生在HP slate 7 的受限模式下,不会发生在 HP slate 7 的正常模式、nexus 平板电脑的正常模式或 nexus 平板电脑的受限模式下。
PS3:我在四台 HP Slate 7 和两台 nexus 平板电脑上进行了测试
PS4:滑动导航栏后,应用程序开始工作,因此我删除并创建新的用户配置文件并再次安装 apk,如果您尝试创建应用程序,请不要假设应用程序在 1 次尝试后工作,因为它会回到不工作模式,在重新创建受限用户配置文件后。
编辑:我想指出我的 HP slate 有 kitkat 和 Nexus 有棒棒糖
我发现了一个与此主题相关的问题,如果 api 小于或等于 JB 中的 19(Kitkat) 类似功能的沉浸式功能,建议他使用“Theme.Holo.NoActionBar.Fullscreen”进行全屏显示,而不是沉浸式集成电路
这是我的代码
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
Button txtContinue;
Button btnClickMe;
TextView txtView;
int n;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_short_form_test);
txtContinue = (Button) findViewById(R.id.txtContinueTest);
txtContinue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,
question1Activity.class);
MainActivity.this.startActivity(intent);
Log.i("########CLICKED#######","#####OnCreate#######");
}
});
}
@Override
protected void onResume() {
super.onResume();
View decorView = getWindow().getDecorView();
decorView
.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
Log.i("########Touched#######","#####TouchEvent########");
return super.onTouchEvent(event);
}
}