คำถามติดแท็ก android-softkeyboard

วิธีการป้อนข้อมูลเริ่มต้นบนหน้าจอที่มีให้โดย Android OS

30
ปิด / ซ่อนคีย์บอร์ดนุ่มของ Android
ฉันมีEditTextและButtonในรูปแบบของฉัน หลังจากเขียนในฟิลด์แก้ไขและคลิกที่Buttonฉันต้องการซ่อนแป้นพิมพ์เสมือนจริง ฉันคิดว่านี่เป็นโค้ดง่าย ๆ แต่ฉันจะหาตัวอย่างได้ที่ไหน เมื่อสัมผัสภายนอกแป้นพิมพ์


30
วิธีแสดงคีย์บอร์ดนุ่มนวลเมื่อเน้น edittext
ฉันต้องการแสดงแป้นพิมพ์นุ่มโดยอัตโนมัติเมื่อมีการEditTextโฟกัส (หากอุปกรณ์ไม่มีแป้นพิมพ์กายภาพ) และฉันมีสองปัญหา: เมื่อฉันActivityแสดงขึ้นฉันEditTextจะโฟกัส แต่แป้นพิมพ์ไม่ปรากฏฉันต้องคลิกอีกครั้งเพื่อแสดงแป้นพิมพ์ (ควรปรากฏขึ้นเมื่อActivityแสดงขึ้น) และเมื่อฉันคลิกทำบนแป้นพิมพ์แป้นพิมพ์จะหายไป แต่EditTextยังคงโฟกัสอยู่และไม่ต้องการ (เพราะการแก้ไขของฉันเสร็จสิ้นแล้ว) เพื่อดำเนินการต่อปัญหาของฉันคือการมีบางสิ่งที่เหมือนบน iPhone: ซึ่งทำให้การซิงค์แป้นพิมพ์กับEditTextสถานะของฉัน(เน้น / ไม่เน้น) และแน่นอนไม่ได้แสดงคีย์บอร์ดอ่อนหากมีอยู่จริง

6
Android: วิธีทำให้ปุ่มกดบนแป้นพิมพ์พูดว่า "ค้นหา" และจัดการกับการคลิก
ฉันไม่สามารถเข้าใจได้ แอพบางตัวมี EditText (textbox) ซึ่งเมื่อคุณสัมผัสมันจะปรากฏขึ้นบนแป้นพิมพ์บนหน้าจอแป้นพิมพ์จะมีปุ่ม "ค้นหา" แทนที่จะเป็นปุ่ม Enter ฉันต้องการใช้สิ่งนี้ ฉันจะใช้ปุ่มค้นหานั้นและตรวจจับการกดปุ่มค้นหาได้อย่างไร แก้ไข : พบวิธีใช้ปุ่มค้นหา ในรูปแบบ XML, หรือในandroid:imeOptions="actionSearch" Java EditTextSample.setImeOptions(EditorInfo.IME_ACTION_SEARCH);แต่ฉันจะจัดการกับผู้ใช้โดยการกดปุ่มค้นหาได้อย่างไร มันมีบางอย่างเกี่ยวข้องกับandroid:imeActionId?

30
จะซ่อนคีย์บอร์ดอ่อนบน Android หลังจากคลิกที่ EditText นอกได้อย่างไร
ตกลงทุกคนรู้ว่าการซ่อนแป้นพิมพ์ที่คุณต้องใช้: InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); แต่เรื่องใหญ่ที่นี่คือวิธีการซ่อนแป้นพิมพ์เมื่อผู้ใช้สัมผัสหรือเลือกสถานที่อื่นที่ไม่ใช่ EditTextหรือ softKeyboard? ฉันพยายามใช้ onTouchEvent()บนบนพาเรนต์ของฉันActivityแต่ใช้งานได้เฉพาะเมื่อผู้ใช้สัมผัสนอกมุมมองอื่นและไม่มี scrollview ฉันพยายามที่จะใช้สัมผัสคลิกโฟกัสฟังโดยไม่ประสบความสำเร็จ ฉันพยายามใช้ scrollview ของตัวเองเพื่อสกัดกั้นเหตุการณ์แบบสัมผัส แต่ฉันสามารถรับพิกัดของเหตุการณ์เท่านั้นไม่ใช่มุมมองที่คลิก มีวิธีมาตรฐานในการทำเช่นนี้หรือไม่? ใน iPhone มันง่ายมาก


11
ปิดการใช้งานมุมมองการแก้ไขแบบเต็มหน้าจอสำหรับการป้อนข้อมูลคีย์บอร์ดอ่อนในแนวนอนหรือไม่
สำหรับอุปกรณ์ Android ที่ใช้แป้นพิมพ์อ่อนฉันต้องการป้องกันไม่ให้มุมมองการแก้ไขแป้นพิมพ์เต็มหน้าจอ (แสดงด้านล่าง) ปรากฏเมื่ออยู่ในโหมดแนวนอน (เช่นฉันต้องการเห็นเฉพาะแป้นพิมพ์นุ่มและมุมมองของฉันเท่านั้น) ฉันคิดว่าสิ่งนี้สามารถทำได้โดยใช้setExtractViewShown(false)วิธีการในInputMethodServiceแต่ฉันไม่สามารถเข้าถึงอินสแตนซ์เริ่มต้นของเรื่องนี้และไม่ต้องการที่จะใช้วิธีการป้อนข้อมูลที่กำหนดเอง แก้ไขเพื่อเพิ่ม:มุมมองที่อินพุตกำลังจะไม่ใช่TextView(เป็นการใช้ViewกับการปรับInputConnectionใช้แบบกำหนดเอง) ดังนั้นandroid:imeOptions="flagNoExtractUi"จะไม่ทำงานที่นี่

16
วิธีการจับภาพเหตุการณ์ "การแสดง / ซ่อนแป้นพิมพ์เสมือน" ใน Android
ฉันต้องการจะเปลี่ยนเลย์เอาต์ตามว่าแป้นพิมพ์เสมือนจริงแสดงหรือไม่ ฉันค้นหา API และบล็อกต่างๆ แต่ดูเหมือนจะไม่พบสิ่งใดที่มีประโยชน์ เป็นไปได้ไหม? ขอบคุณ!

25
Android วิธีปรับเลย์เอาต์ในโหมดเต็มหน้าจอเมื่อมองเห็นซอฟต์คีย์บอร์ด
ฉันค้นคว้ามากเพื่อปรับเลย์เอาต์เมื่อมีการใช้งานซอฟต์คีย์บอร์ดและฉันใช้งานได้สำเร็จ แต่ปัญหาเกิดขึ้นเมื่อฉันใช้android:theme="@android:style/Theme.NoTitleBar.Fullscreen"สิ่งนี้ในแท็กกิจกรรมของฉันในไฟล์รายการ สำหรับเรื่องนี้ฉันได้ใช้android:windowSoftInputMode="adjustPan|adjustResize|stateHidden"กับตัวเลือกที่แตกต่างกัน แต่ไม่มีโชค หลังจากนั้นฉันดำเนินการFullScreenโปรแกรมและพยายามที่รูปแบบต่าง ๆ เพื่อให้การทำงานมีFullScreenแต่ทั้งหมดในไร้สาระ ฉันอ้างลิงค์เหล่านี้และดูโพสต์มากมายที่เกี่ยวข้องกับปัญหานี้: http://android-developers.blogspot.com/2009/04/updating-applications-for-on-screen.html http://davidwparker.com/2011/08/30/android-how-to-float-a-row-above-keyboard/ นี่คือรหัส xml: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout android:id="@+id/masterContainerView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android" android:background="#ffffff"> <ScrollView android:id="@+id/parentScrollView" android:layout_width="fill_parent" android:layout_height="wrap_content"> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <TextView android:id="@+id/setup_txt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Setup - Step 1 of 3" android:textColor="@color/top_header_txt_color" android:textSize="20dp" android:padding="8dp" android:gravity="center_horizontal" /> <TextView android:id="@+id/txt_header" android:layout_width="fill_parent" android:layout_height="40dp" android:text="AutoReply:" …

10
ปิดใช้งานคีย์บอร์ดอ่อนใน NumberPicker
ฉันกำลังพยายามปิดใช้งานแป้นพิมพ์อ่อนเมื่อใช้ NumberPicker เพื่อป้อนค่าตัวเลข (เพื่อเหตุผลด้านสุนทรียภาพ) นี่คือเลย์เอาต์ของฉัน xml-code: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:id="@+id/linearLayout2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginBottom="30dp" android:layout_marginTop="30dp" > <NumberPicker android:id="@+id/repetitionPicker" android:layout_width="40dp" android:layout_height="wrap_content" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:text="@string/repetitions_short_divider" android:textAppearance="?android:attr/textAppearanceMedium" /> <NumberPicker android:id="@+id/weightPicker" android:layout_width="40dp" android:layout_height="wrap_content" android:layout_marginLeft="40dp" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:text="@string/pounds" android:textAppearance="?android:attr/textAppearanceMedium" /> …

15
วิธีปรับเลย์เอาต์เมื่อคีย์บอร์ดนุ่มปรากฏขึ้น
ฉันต้องการที่จะปรับ / ปรับขนาดเค้าโครงเมื่อเปิดใช้งานแป้นพิมพ์นุ่ม ๆ ดังต่อไปนี้: ก่อนและหลัง: พบแหล่งข้อมูลคู่ใน SO: วิธีการทำให้ฟิลด์และข้อความทั้งหมดสามารถมองเห็นได้ในขณะที่แสดงคีย์บอร์ดอ่อน แป้นพิมพ์อ่อนนุ่มของ Android จะทำลายรูปแบบเมื่อปรากฏขึ้น ปรับเค้าโครงเมื่อเปิดคีย์บอร์ดอ่อน แต่คำถาม & คำตอบนั้นค่อนข้างคลุมเครือนี่เป็นคำถามที่มีภาพที่ชัดเจนกว่าสิ่งที่ฉันต้องการ ที่ต้องการ: ควรทำงานบนโทรศัพท์ทุกขนาดหน้าจอ สังเกตเห็นว่าระยะขอบ / ช่องว่างภายในที่ "FACEBOOK" และ "สมัครใช้งาน Facebook" มีการเปลี่ยนแปลงก่อนและหลัง ไม่มีส่วนเกี่ยวข้องกับมุมมองเลื่อน

23
วิธีซ่อน Soft Keyboard เมื่อกิจกรรมเริ่มขึ้น
ฉันมี Edittext ด้วยandroid:windowSoftInputMode="stateVisible"ใน Manifest ตอนนี้แป้นพิมพ์จะปรากฏขึ้นเมื่อฉันเริ่มกิจกรรม จะซ่อนมันได้อย่างไร? ฉันไม่สามารถใช้android:windowSoftInputMode="stateHiddenเพราะเมื่อมองเห็นแป้นพิมพ์แล้วย่อขนาดแอปให้เล็กลงและกลับมาใช้งานแป้นพิมพ์ควรจะมองเห็นได้ ฉันลองด้วย InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); แต่มันไม่ทำงาน

24
แป้นพิมพ์อ่อนเปิดและปิดผู้ฟังในกิจกรรมใน Android
ฉันมีActivityที่ที่มี 5 EditTextวินาที เมื่อผู้ใช้คลิกที่ปุ่มแรกEditTextแป้นพิมพ์แบบอ่อนจะเปิดขึ้นเพื่อป้อนค่าบางอย่างในนั้น ฉันต้องการตั้งค่าViewการมองเห็นของผู้อื่นเป็นGoneเมื่อแป้นพิมพ์อ่อนเปิดขึ้นและเมื่อผู้ใช้คลิกที่EditTextแป้นแรกและเมื่อแป้นพิมพ์อ่อนปิดลงจากเดิมEditTextเมื่อกดปุ่มย้อนกลับ จากนั้นฉันต้องการตั้งค่าViewการเปิดเผยของคนอื่นให้มองเห็นได้ มีผู้ฟังหรือโทรกลับหรือแฮ็คเมื่อคีย์บอร์ดนุ่มเปิดขึ้นจากการคลิกครั้งแรกEditTextใน Android หรือไม่?

5
ความแตกต่างระหว่าง adjustmentResize และ adjustmentPan ใน Android?
ฉันพยายามเขียนโค้ดที่ใช้เพื่อปรับขนาดคอมโพเนนต์ UI ใหม่เมื่อซอฟต์คีย์บอร์ดปรากฏขึ้น เมื่อฉันใช้adjustResizeมันปรับขนาดคอมโพเนนต์ UI และในเวลาเดียวกันก็ปรับขนาดให้ผลลัพธ์เดียวกัน ฉันต้องการทราบความแตกต่างระหว่างพวกเขาและเวลาที่จะใช้แต่ละองค์ประกอบ? อันไหน (adjustmentPan หรือ adjustmentResize) ที่ดีสำหรับการปรับขนาด UI นี่คือ xml ของฉัน: <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" > <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:orientation="vertical" > <EditText android:id="@+id/editText5" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="45dp" android:ems="10" android:inputType="textPersonName" /> <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="40dp" android:text="My Button" /> </LinearLayout> </RelativeLayout> …

11
แป้นพิมพ์บนหน้าจอ Android ปรากฏขึ้นโดยอัตโนมัติ
หนึ่งในแอพของฉันมี "หน้าจอเปิด" (โดยทั่วไปคือเมนู) ที่EditTextตามมาด้วยหลายButtonๆ ปัญหาคือว่าหลายผู้ใช้ของฉันมีการรายงานว่าเมื่อพวกเขาเปิด app มัน popping EditTextขึ้นโดยอัตโนมัติแป้นพิมพ์บนหน้าจอโดยไม่ต้องพวกเขาได้สัมผัส เท่าที่ผมสามารถบอกได้ทั้งหมดของผู้ใช้เหล่านี้จะถูกใช้HTC Hero นี่เป็นข้อบกพร่องใน 1.5 หรือไม่? มีอะไรที่ฉันทำได้บ้างไหม?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.