編集テキストがあります:
<LinearLayout Android:id="@+id/linearLayout7" Android:layout_width="match_parent" Android:layout_height="wrap_content">
<EditText Android:layout_height="wrap_content" Android:layout_width="wrap_content" Android:layout_weight="1" Android:id="@+id/editText1" Android:text="3">
<requestFocus></requestFocus>
</EditText>
<Button Android:text="Button" Android:layout_height="wrap_content" Android:layout_width="wrap_content" Android:id="@+id/button2"></Button>
</LinearLayout>
そして、下にいくつかの他のもの
私が抱えている問題は、アプリの起動時にフォーカスが入力にあることで、アプリの起動時にフォーカスを入力にしたくないことです。
取り外してみました
<requestFocus></requestFocus>
事とそれは何もしませんでした。
Android:focusable="true"
および Android:focusableInTouchMode="true"
EditText の親レイアウトの要素は次のとおりです。
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/linearLayout7" Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:focusable="true" Android:focusableInTouchMode="true">
役立つと思う。
いいえ、作業はありません... Android:windowSoftInputMode = "stateAlwaysHidden"をManifest.xmlファイルのアクティビティタグに追加するだけです。
編集テキストのデフォルトのフォーカスをクリアする場合は、次の2つの属性を使用します
Android:focusable="false"
Android:focusableInTouchMode="true"
親のリニアレイアウト内。
例えば:
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:focusable="false"
Android:focusableInTouchMode="true"
Android:orientation="vertical">
<EditText
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:hint="email id"
Android:inputType="textEmailAddress"
Android:maxLines="1"
/>
</LinearLayout>
アクティビティの作成時にキーボードを非表示にする場合は、マニフェストファイルのアクティビティタグ内で次の属性を使用します。
<activity
Android:configChanges="screenSize|orientation|keyboardHidden"
Android:screenOrientation="portrait"
Android:name=".activities.LoginActivity"
Android:windowSoftInputMode="stateHidden|adjustResize"/>
ボタンをクリックしたとき、または何らかのイベントが発生したときにキーボードを非表示にする場合は、次のコードを使用します
public void onClick(View v) {
try {
//InputMethodManager is used to hide the virtual keyboard from the user after finishing the user input
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm.isAcceptingText()) {
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
} catch (NullPointerException e) {
Log.e("Exception", e.getMessage() + ">>");
}
}
} catch (NullPointerException e) {
Log.e("Exception", e.getMessage() + ">>");
}
アクティビティを終了した後、テキストフィールドの編集からフォーカスを外したい場合
@Override
protected void onResume() {
super.onResume();
mEmail.clearFocus();
mPassword.clearFocus();
}
最後に、フォームの送信時に編集テキストフィールドのデータを消去する場合は、
@Override
protected void onResume() {
super.onResume();
mEmail.getText().clear();
mPassword.getText().clear();
}
<LinearLayout
Android:focusable="true"
Android:focusableInTouchMode="true"
Android:layout_width="0px"
Android:layout_height="0px" />
<EditText Android:text=""
Android:id="@+id/EditText01"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:hint="@string/hint">
</EditText>
他のコーディングは不要で、シンプルで明確なソリューションです。
キーボードを非表示にするために非表示のウィンドウソフト入力モードとAndroid:focusable="false"
およびAndroid:focusableInTouchMode="true"
<activity
Android:name=".MainActivity"
Android:windowSoftInputMode="stateHidden"
Android:label="@string/app_name"
>
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<EditText
Android:id="@+id/input"
Android:layout_width="0dp"
Android:layout_height="48dp"
Android:focusable="false"
Android:focusableInTouchMode="false" />
detailInputView = (EditText) debugToolsView.findViewById(R.id.input);
detailInputView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
detailInputView.setFocusable(true);
detailInputView.setFocusableInTouchMode(true);
return false;
}
});
それは私のために働いた、願いもあなたを助けるでしょう。
いずれか:
Android:windowSoftInputMode="stateAlwaysHidden"
このプロパティを、オートフォーカスを無効にする特定のアクティビティの下のManifest.xmlファイルに追加します。 短所:ソフトキーボードのみが非表示になり、カーソルはそのままになります。
その他:
Android:focusableInTouchMode="true"
このプロパティをUI xmlファイル(親レイアウトの下)に追加して、キーボードとフォーカスの両方を非表示にします。
ヘイ リー 、
これを行うにはいくつかの方法がありますが、 Mudassir がその方法を提供します。
アイデアがうまくいかない場合は、単純なことをしてください-
あなたのAndroidManifest>Activity
次の簡単なコードを追加します。
Android:windowSoftInputMode="stateHidden"
XMLのEditTextで行う必要はありません。すべてが機能し、フォーカスは表示されません。
実際のサンプルコードを見てください:
<activity
Android:name=".MainActivity"
Android:windowSoftInputMode="stateHidden"
Android:label="@string/app_name"
>
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
linearLayoutでこのコードを試してください
<LinearLayout
Android:focusable="true"
Android:focusableInTouchMode="true"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical">
<EditText
Android:hint="Search..."
Android:drawableRight="@drawable/ic_search"
Android:id="@+id/search_tab_hotbird_F"
Android:layout_width="match_parent"
Android:layout_height="wrap_content" />
<Android.support.v7.widget.RecyclerView
Android:id="@+id/recyHotbird_F"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:padding="4dp">
</Android.support.v7.widget.RecyclerView>
</LinearLayout>
デフォルトのrequestFocuseをクリアするには、以下のようにビューの親focusable = "true"を設定する必要があります
<Android.support.constraint.ConstraintLayout
Android:id="@+id/coordinatorChild"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:focusable="true"
Android:focusableInTouchMode="true">
メインレイアウトビューのxmlタグに次を追加するだけです。
Android:focusableInTouchMode="true"