0

我正在为受限模式下的 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);

     }


   }
4

0 回答 0