ฉันมีหน้าจอที่ช่องแรกเป็น EditText และได้รับการโฟกัสเมื่อเริ่มต้นรวมทั้งป๊อปอัปประเภทการป้อนตัวเลขซึ่งน่ารำคาญมาก
ฉันจะแน่ใจได้อย่างไรว่าเมื่อเริ่มกิจกรรมแล้วโฟกัสจะไม่ได้รับและ / หรือแผงอินพุตไม่ยกขึ้น
ฉันมีหน้าจอที่ช่องแรกเป็น EditText และได้รับการโฟกัสเมื่อเริ่มต้นรวมทั้งป๊อปอัปประเภทการป้อนตัวเลขซึ่งน่ารำคาญมาก
ฉันจะแน่ใจได้อย่างไรว่าเมื่อเริ่มกิจกรรมแล้วโฟกัสจะไม่ได้รับและ / หรือแผงอินพุตไม่ยกขึ้น
คำตอบ:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0);
หรือ
ตั้งค่าคุณสมบัติกิจกรรมในไฟล์รายการดังต่อไปนี้ในแท็กแอปพลิเคชัน
android:windowSoftInputMode="stateHidden"
ไปที่ไฟล์รายการแอปพลิเคชันของคุณและเขียนบรรทัดนี้สำหรับกิจกรรมที่คุณต้องการปิดใช้งานป๊อปอัปแป้นพิมพ์อัตโนมัติ
android:windowSoftInputMode="stateHidden"
หากต้องการใช้แป้นพิมพ์โดยใช้โปรแกรมไม่แสดง แต่วิดเจ็ตเริ่มต้นยังคงรับสายโฟกัส:
getWindow().setSoftInputMode(WindowManager.
LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
ใน onResume()
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
เรียกใช้วิธีการด้านบนภายในonCreate ()ซึ่งป้องกันไม่ให้softKeyboardแสดงเว้นแต่ผู้ใช้จะเลือกEditText by
tapping or clicking.
หรือเพิ่มandroid:windowSoftInputMode="stateHidden"
ในแท็กกิจกรรมในManifest.xml
ซึ่งมักจะเป็นระเบียบ สิ่งแรกที่ฉันลองคือพยายามขโมยโฟกัสด้วยมุมมองอื่นผ่าน คุณต้องมีInTouchModeที่โฟกัสได้และโฟกัสได้
<TextView
...
android:focusable="true"
android:focusableInTouchMode="true">
<requestFocus/>
</TextView>
มีมุมมองอื่นที่จับโฟกัส ตามค่าเริ่มต้นมุมมองแรกที่โฟกัสได้จะได้รับโฟกัสเมื่อเค้าโครงสูงเกินจริง คุณสามารถขอโฟกัสในมุมมองอื่นผ่าน XML:
<TextView
android:layout_width="wrap_parent"
android:layout_height="wrap_content"
android:text="Some other view">
<requestFocus />
</TextView>
สิ่งนี้ใช้ได้กับทุกมุมมอง
หากคุณต้องการทำแบบเป็นโปรแกรมคุณสามารถใช้ไฟล์ view.requestFocus()
ไฟล์.
if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED)
{
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
}
edit
ลิงก์และทำการเปลี่ยนแปลง และโปรดพยายามที่จะจัดรูปแบบรหัสของคุณโดยการเลือกรหัสของคุณและใช้ปุ่มตัวอย่างรหัสหรือกดปุ่ม{}
Ctrl+K
การเพิ่ม android:windowSoftInputMode="stateHidden"
กิจกรรมของคุณในไฟล์ Manifest จะซ่อนแป้นพิมพ์เฉพาะเมื่อคุณเปิดตัวกิจกรรมหรือตามที่ Google กล่าว
เมื่อผู้ใช้ยืนยันว่าจะไปข้างหน้าเพื่อทำกิจกรรมแทนที่จะกลับเข้าไปในกิจกรรมนั้นเนื่องจากการออกจากกิจกรรมอื่น
หากต้องการซ่อนแป้นพิมพ์เมื่อผู้ใช้กดปุ่มย้อนกลับและย้ายกลับไปที่กิจกรรมของคุณจากกิจกรรมอื่น ๆ ให้ใช้ android:windowSoftInputMode="stateAlwaysHidden"
ไม่ได้ลองสิ่งนี้หรือฉันอยู่ใกล้คอมพิวเตอร์เขียนโปรแกรมของฉัน แต่ฉันสงสัยว่าการส่งโฟกัสแบบเป็นโปรแกรมไปยังมุมมองผู้ปกครองหรือบางอย่างในลักษณะนั้นอาจทำเคล็ดลับ - นั่นเป็นวิธีแก้ปัญหามากกว่าวิธีแก้ปัญหา แต่ไม่สามารถทดสอบได้อีกครั้ง ความคิด
.requestFocus();
ปุ่มและยังคงเป็นป๊อปอัปของแป้นพิมพ์
Formats: flag Values: adjustNothing, adjustPan, adjustResize, adjustUnspecified, stateAlwaysHidden, stateAlwaysVisible, stateHidden, stateUnchanged, stateUnspecified, stateVisible Specify the default soft-input mode for the main window of this activity. A value besides "unspecified" here overrides any value in the theme.