AndroidスタジオでAndroidに小さなアプリケーションを開発しています。 URLに接続し、フルスクリーンモードでWebページを表示するのは単なるWebViewです。私はそれを無効にするソフトウェアのキーボードは必要ありませんが、まだ私のwebview(画像参照)の下部にポップアップキーボードを示しています。私がクリックするとポップアップが消えますが、ウェブビューのどの部分でクリックしても再び表示されます。いずれの場合でもキーボードは表示されません。ポップアップだけです。Android:WebViewの下部にあるポップアップソフトキーボード
URLコンテンツを編集できません。
どうすればこのポップアップを完全に無効にすることができますか?
これは私のAndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cl.archibaldo.floreantpos">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:theme="@style/AppTheme"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher"
android:supportsRtl="true"
>
<activity
android:name=".ActivityWebView"
android:alwaysRetainTaskState="true"
android:configChanges="keyboardHidden"
android:screenOrientation="landscape"
android:windowSoftInputMode="stateAlwaysHidden"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
</activity>
<activity android:name=".MainActivity"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
マイactivity_webview.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:descendantFocusability="blocksDescendants"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="cl.archibaldo.floreantpos.ActivityWebView">
<WebView
android:focusable="false"
android:focusableInTouchMode="false"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
そして、私のActivityWebView.java
ですpackage cl.archibaldo.floreantpos;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.WindowManager;
import android.webkit.WebView;
public class ActivityWebView extends Activity {
WebView myWebView;
View decorView;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
String url = intent.getStringExtra("URL");
this.setContentView(R.layout.activity_webview);
hideSystemUI();
myWebView = (WebView) this.findViewById(R.id.webview);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
myWebView.setSaveEnabled(true);
myWebView.getSettings().setLoadWithOverviewMode(true);
myWebView.getSettings().setUseWideViewPort(true);
myWebView.loadUrl(url);
decorView.setOnSystemUiVisibilityChangeListener
(new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
Handler espera3segundos = new Handler();
espera3segundos.postDelayed(new Runnable(){
public void run(){
hideSystemUI();
}
},3000);
}
}
});
}
@Override
protected void onPause() {
super.onPause();
}
private void hideSystemUI() {
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
decorView = this.getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
| View.SYSTEM_UI_FLAG_IMMERSIVE);
}
}
ありがとうございました。私の英語には申し訳ありません。私はまだ学んでいます。よろしく。
回答ありがとうございました:)私は試してみますが、動作しません。 –
これは前にここで答えられました: http://stackoverflow.com/a/29409478/3280468 –
@AmitSharma返信ありがとうございます。あなたが提案した答えで試したが、うまくいかなかった。キーボードが既に無効になっているので、元の投稿の画像に表示されるポップアップキーボードが消えてしまいます。 –