ในแอปพลิเคชัน Android ของฉันจะเน้นที่รูปแบบแรกที่Button
ฉันมีโดยอัตโนมัติโดยให้เป็นโครงร่างสีส้ม ฉันจะตั้งค่าโฟกัสเริ่มต้นให้ดีกว่าใน XML ได้อย่างไรและจะตั้งค่าเป็นอะไรได้ไหม
ในแอปพลิเคชัน Android ของฉันจะเน้นที่รูปแบบแรกที่Button
ฉันมีโดยอัตโนมัติโดยให้เป็นโครงร่างสีส้ม ฉันจะตั้งค่าโฟกัสเริ่มต้นให้ดีกว่าใน XML ได้อย่างไรและจะตั้งค่าเป็นอะไรได้ไหม
คำตอบ:
คุณสามารถใช้requestFocus
แท็ก:
<Button ...>
<requestFocus />
</Button>
ฉันคิดว่ามันแปลกแม้ว่ามันจะโฟกัสอัตโนมัติปุ่มใดปุ่มหนึ่งของคุณ แต่ฉันไม่ได้สังเกตพฤติกรรมนั้นในมุมมองของฉันเลย
@ มีใครบางคนฉันลองทำทุกข้อข้างต้นแล้วก็ไม่มีประโยชน์ การแก้ไขที่ฉันพบคือจากhttp://www.helloandroid.com/tutorials/remove-autofocus-edittext-android โดยทั่วไปคุณต้องสร้างเค้าโครงที่มองไม่เห็นเหนือปุ่มที่มีปัญหา:
<LinearLayout android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="0px"
android:layout_height="0px" >
<requestFocus />
</LinearLayout>
RelativeLayout
ไฟล์EditText
.
ตั้งทั้งสอง:focusable
และเพื่อความจริงและการโทร:focusableInTouchMode
requestFocus
มันไม่หลอกลวง
ฉันพบว่าสิ่งนี้ได้ผลดีที่สุดสำหรับฉัน
ใน AndroidManifest.xml <activity> element
เพิ่มandroid:windowSoftInputMode="stateHidden"
สิ่งนี้จะซ่อนแป้นพิมพ์เสมอเมื่อเข้าสู่กิจกรรม
ฉันเพิ่งเพิ่มบรรทัดของรหัสนี้ในonCreate()
:
this.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
แก้ไขปัญหา.
ใช้รหัสด้านล่าง
TableRow _tableRow =(TableRow)findViewById(R.id.tableRowMainBody);
tableRow.requestFocus();
ที่ควรจะทำงาน
@ บางคนฉันใช้สิ่งนี้เพื่อล้างโฟกัส:
editText.clearFocus();
และช่วยได้
android:focusedByDefault="true"
focusedByDefault
ใช้เฉพาะใน API ระดับ 26 และสูงกว่า (ขั้นต่ำปัจจุบันคือ 21)