我正在为受限模式下的HP Slate 7开发一个Android应用程序(创建了一个对资源有限访问权限的新用户配置文件)。应用程序需要全屏,因此我使用View.SYSTEM_UI_FLAG_HIDE_NAVIGATION来隐藏状态和导航栏,当我运行应用程序时,屏幕看起来冻结并且不响应触摸(我无法点击屏幕上的按钮)。当我从下往上滑动以查看导航栏时,屏幕看起来就像生命一样,我可以按下按钮。 (这对我的应用程序用户来说并不理想,因为我不希望他们每次都能从屏幕上刷到屏幕,因为它是不好的用户体验)。
所以我的问题是HP slate和nexus的限制模式之间会有什么不同,我的应用程序可以在nexus上运行,而不适用于HP。请建议是否有任何方法可以解决这个问题。
PS1:我使用了如下所示的onTouchEvent方法来捕获屏幕上任何地方的触摸事件,但未调用该方法。
PS2:在HP slate 7的限制模式下发生仅,并且在HP平板7的正常模式,nexus平板电脑的正常模式或nexus平板电脑的限制模式下不会发生。
PS3:我测试了四种HP Slate 7和两种nexus片剂
PS4:在导航条滑动后,应用程序开始工作,因此我删除并创建新的用户配置文件并再次安装apk,如果您尝试创建应用程序,请不要认为应用程序在1次尝试后工作,因为它会回来重新创建受限制的用户配置文件后,无法工作模式。编辑:我想指出我的HP平板有kitkat而Nexus有棒棒糖
我发现了一个与此主题相关的问题,如果api小于或等于19(Kitkat),他建议使用“Theme.Holo.NoActionBar.Fullscreen”全屏,而不是沉浸式 Immersive like feature in JB and ICS
这是我的代码
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);
}
}