Обнаружение программной клавиатуры скрытия и скрытия кнопок навигации - PullRequest
0 голосов
/ 25 июня 2019

Я новичок в Java и Android, поэтому код, который у меня есть, я вставил из сети. Цель состоит в том, чтобы создать простой веб-браузер для одной веб-страницы. На этой веб-странице можно редактировать текст и тому подобное.

Основная цель - сохранить браузер в полноэкранном режиме , чтобы не использовать кнопки навигации Android.

Я пытался использовать этот код, но безуспешно, пока не узнаю. Обнаружение скрытого состояния мягкой клавиатуры

public class MainActivity extends AppCompatActivity {
    private static final String TAG = "MyActivity";
    static int mAppHeight;
    static int currentOrientation = -1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE); //will hide the title
        getSupportActionBar().hide(); // hide the title bar
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN); //enable full screen
        getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION|
                View.SYSTEM_UI_FLAG_IMMERSIVE);
        setContentView(R.layout.activity_main);
        //make a webview object
        WebView webview=new WebView(this);

        webview.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);

                getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION|
                        View.SYSTEM_UI_FLAG_IMMERSIVE);
            }
        });

        // enable javascript
        WebSettings webSettings = webview.getSettings();
        webSettings.setJavaScriptEnabled(true);
        //show it through setcontentview()method
        setContentView(webview);

        webview.loadUrl("https://www.mypage.com");
    }


    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        if (hasFocus) {
            hideSystemUI();
        }
    }

    private void hideSystemUI() {
        View decorView = getWindow().getDecorView();
        decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
                View.SYSTEM_UI_FLAG_IMMERSIVE);
    }
}

Может кто-нибудь помочь, куда поставить код по ссылке?

Большое спасибо С уважением

РЕДАКТИРОВАТЬ:

Я тоже пробовал это, но я не вижу, чтобы событие запускалось, когда программная клавиатура показывает или скрывает .: https://github.com/yshrsmz/KeyboardVisibilityEvent

Ответы [ 2 ]

0 голосов
/ 25 июня 2019

В вашем манифесте используйте это -

<activity
    android:name=".Activities. MainActivity"
    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen">
</activity>

В Activity onCreate используйте только это -

@Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       this.requestWindowFeature(Window.FEATURE_NO_TITLE);
       setContentView(R.layout. activity_main);

AND REMOVE

requestWindowFeature(Window.FEATURE_NO_TITLE); //will hide the title
        getSupportActionBar().hide(); // hide the title bar
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN); //enable full screen
        getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION|
                View.SYSTEM_UI_FLAG_IMMERSIVE);
        setContentView(R.layout.activity_main);
0 голосов
/ 25 июня 2019

Попробуйте:

 View decorView = getWindow().getDecorView();

            int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN;

            decorView.setSystemUiVisibility(uiOptions);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...