มีวิธีทำให้หน้าจอเลื่อนเพื่อให้สามารถเห็นฟิลด์ข้อความได้หรือไม่?
มีวิธีทำให้หน้าจอเลื่อนเพื่อให้สามารถเห็นฟิลด์ข้อความได้หรือไม่?
คำตอบ:
คุณกำลังถามว่าจะควบคุมสิ่งที่มองเห็นได้เมื่อเปิดคีย์บอร์ดอ่อนหรือไม่? คุณอาจต้องการที่จะเล่นกับwindowSoftInputMode ดูเอกสารนักพัฒนาซอฟต์แวร์สำหรับการสนทนาเพิ่มเติม
android:fitsSystemWindows="true"
ในมุมมองรูตของคุณเพื่อแก้ไขปัญหานี้
ฉันมีปัญหาเดียวกัน ลองรหัสต่อไปนี้:
android:windowSoftInputMode="adjustPan"
เพิ่มไปยัง manifest.xml ของคุณในแท็กกิจกรรมของกิจกรรมที่เก็บอินพุต ตัวอย่าง:
<activity
android:name=".Activities.InputsActivity"
...
android:windowSoftInputMode="adjustPan"
/>
adjustResize
ทำ แต่มันยังครอบคลุมถึงช่องป้อนข้อมูลของฉันด้วย
ฉันมีปัญหาเดียวกันกับที่แผงปุ่มกดอยู่ด้านบนของมุมมอง EditText ซึ่งวางไว้ที่ด้านล่างของหน้าจอ ฉันสามารถค้นหาวิธีแก้ไขได้ด้วยการเพิ่มบรรทัดเดียวในกิจกรรมที่เกี่ยวข้องของไฟล์ AndroidManifest.xml
android:windowSoftInputMode="adjustResize|stateHidden"
นี่คือลักษณะของแท็กกิจกรรมทั้งหมด:
<activity
android:name="com.my.MainActivity"
android:screenOrientation="portrait"
android:label="@string/title_activity_main"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity>
ค่าที่สำคัญที่สุดคือการปรับขนาด สิ่งนี้จะเลื่อน UI ทั้งหมดขึ้นเพื่อให้มีที่ว่างสำหรับ softkeyboard
adjustResize|stateHidden
adjustPan
ทำไมไม่ลองเพิ่ม ScrollView เพื่อตัดสิ่งที่คุณต้องการเลื่อน นี่คือวิธีที่ฉันทำมันโดยที่ฉันปล่อยให้ส่วนหัวอยู่ด้านบนซึ่งไม่เลื่อนในขณะที่วิดเจ็ตข้อความโต้ตอบ
<LinearLayout android:id="@+id/HeaderLayout" >
<!-- Here add a header or whatever will not be scrolled. -->
</LinearLayout>
<ScrollView android:id="@+id/MainForm" >
<!-- Here add your edittexts or whatever will scroll. -->
</ScrollView>
ฉันมักจะมี LinearLayout ภายใน ScrollView แต่นั่นก็ขึ้นอยู่กับคุณ นอกจากนี้การตั้งค่าสไตล์แถบเลื่อนไปที่ด้านนอกจะช่วยให้อย่างน้อยบนอุปกรณ์ของฉัน
สิ่งที่คุณต้องทำคือ
android:isScrollContainer="true"
แหล่งที่มา: http://www.davidwparker.com/2011/08/25/android-fixing-window-resize-and-scrolling/
ขออภัยสำหรับการคืนค่าเธรดเก่า แต่ไม่มีใครพูดถึงการตั้งค่าandroid:imeOptions="flagNoFullscreen"
ในองค์ประกอบ EditText ของคุณ
android:windowSoftInputMode="adjustPan"
android:isScrollContainer="true"
ใช้งานได้กับ android EditText ในขณะที่ใช้งานไม่ได้กับ webview หรือ xwalkview เมื่อคีย์บอร์ดอ่อนซ่อนอินพุตใน webview หรือ xwalkview ที่คุณใช้android:windowSoftInputMode="adjustResize"
ฉันเชื่อว่าคุณสามารถเลื่อนดูได้โดยใช้แทร็กบอลซึ่งอาจทำได้โดยการเขียนโปรแกรมผ่านวิธีการเลือกในที่สุด แต่เป็นเพียงความคิด ฉันรู้ว่าวิธีแทร็กบอลมักจะใช้งานได้ แต่สำหรับวิธีที่แน่นอนในการทำสิ่งนี้และทำให้มันใช้งานได้จากโค้ดฉันไม่แน่ใจ
หวังว่าจะช่วย
เพิ่มบรรทัดเดียวนี้ไปยังกิจกรรมที่เกี่ยวข้องของคุณโดยที่แผงปุ่มกดครอบคลุมแก้ไข text.inside onCreat () วิธีการของกิจกรรม
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
ฉันรู้ว่านี่เก่า แต่ไม่มีวิธีการใดที่ได้ผลสำหรับฉัน หลังจากตรวจแก้จุดบกพร่องอย่างกว้างขวางฉันก็พบปัญหา วิธีแก้ปัญหาคือการตั้งค่าandroid:windowTranslucentStatus
คุณลักษณะเป็นเท็จในสไตล์ของฉัน xml
หากเขตข้อมูล EditText ได้รับการครอบคลุมโดย KeyBoard ให้ใช้รหัสต่อไปนี้:
EditText= findViewById(R.id.edittext)
EditText?.getParent()?.requestChildFocus(EditText,EditText)
หากคุณต้องการให้เคอร์เซอร์อยู่ใน Focused EditText กว่าการใช้งาน EditText.requestFocus()
หลังจากEditText?.getParent()?.requestChildFocus(EditText,EditText)
ที่ช่วยให้ได้รับโฟกัสและเคอร์เซอร์ใน Focused EditText
แก้ไข AndroidManifest.xml ของคุณ
android:windowSoftInputMode="adjustResize"
เพิ่มสิ่งนี้ไปยังมุมมองรูทของไฟล์เค้าโครง
android:fitsSystemWindows="true"
นั่นคือทั้งหมดที่