ฉันใช้EditText
ภายใน a TextInputLayout
แต่หลังจากอัปเกรดไลบรารีการสนับสนุนเป็น 23.2.0 ฉันได้รับคำเตือนนี้ใน logcat ความแตกต่างระหว่างปกติEditText
กับ a TextInputEditText
คืออะไร? ฉันไม่พบเอกสารประกอบใด ๆ
ฉันใช้EditText
ภายใน a TextInputLayout
แต่หลังจากอัปเกรดไลบรารีการสนับสนุนเป็น 23.2.0 ฉันได้รับคำเตือนนี้ใน logcat ความแตกต่างระหว่างปกติEditText
กับ a TextInputEditText
คืออะไร? ฉันไม่พบเอกสารประกอบใด ๆ
คำตอบ:
ฉันก็สงสัยเช่นกันDaniel Wilsonรวบรวมเอกสาร แต่สำหรับสายตาที่ไม่ได้รับการฝึกฝนมันไม่ได้มีความหมายอะไรมาก นี่คือข้อมูลทั้งหมด: "โหมดแยก"หมายถึงประเภทของมุมมองที่แสดงเมื่อมีพื้นที่น้อยเกินไปเช่นแนวนอนบนโทรศัพท์ ฉันใช้ Galaxy S4 กับแป้นพิมพ์ของ Google เป็นตัวแก้ไขวิธีการป้อนข้อมูล (IME)
ขึ้นอยู่กับโฟกัส (ในคำอธิบาย) คุณสามารถเห็นTextInputLayout
การดำเนินการผลักคำใบ้ออกนอกตัวแก้ไข ที่นี่ไม่มีอะไรพิเศษนี่คือสิ่งที่TextInputLayout
ควรทำ
การแก้ไขชื่อคุณจะเห็นว่า IME ไม่ได้ให้คำแนะนำเกี่ยวกับสิ่งที่คุณกำลังแก้ไข
การแก้ไขคำอธิบายคุณจะเห็นว่า IME ให้คำแนะนำเกี่ยวกับสิ่งที่คุณกำลังแก้ไข
ความแตกต่างระหว่างสองช่องคือประเภทของพวกเขาVSEditText
TextInputEditText
สิ่งสำคัญที่นี่คือTextInputLayout
มีandroid:hint
และไม่มี EditText แบบห่อซึ่งเป็นกรณีที่TextInputEditText
โค้ด Java ไม่กี่บรรทัดสร้างความแตกต่างอย่างมาก
<android.support.design.widget.TextInputLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Item Name"
>
<EditText
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Item Description"
>
<android.support.design.widget.TextInputEditText
android:id="@+id/description"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textMultiLine"
android:minLines="4"
android:scrollbars="vertical"
/>
</android.support.design.widget.TextInputLayout>
android:hint
สถานที่ให้บริการควรจะไปในแทนTextInputEditText
TextInputLayout
TextInputEditText
เป็นรายละเอียดการใช้งานของ UI
ไม่มีเอกสารประกอบ แต่คลาสนี้เป็นคลาสปกติที่EditText
มีคุณสมบัติพิเศษเดียว:
การใช้คลาสนี้ทำให้เราสามารถแสดงคำใบ้ใน IME เมื่ออยู่ในโหมด 'แยก'
โดยเฉพาะจะตั้งค่าEditorInfo.hintText
. คุณจะสังเกตเห็นในTextInputLayout
ชั้นเรียนคุณสามารถระบุคำใบ้และลักษณะที่ปรากฏแทนที่จะเป็นส่วนหนึ่งของEditText
วิดเจ็ตลูก
หากคุณจำเป็นต้องทำเช่นนั้นคุณควรใช้TextInputEditText
ดังนั้นให้ความสำคัญกับข้อมูลคำใบ้ที่คุณระบุไว้ในไฟล์TextInputLayout
.
โดยพื้นฐานแล้วมันเป็นสิ่งเดียวกัน แต่ฉันคิดว่ามันTextInputEditText
มีคุณสมบัติมากกว่าและอาจเป็นคุณสมบัติ ฉันเปลี่ยนเป็นTextInputEditText
และทุกอย่างใช้งานได้และดูเป็นไปตามมาตรฐานก่อนหน้าEditText
นี้
ข้อแตกต่างเพียงอย่างเดียวคือเมื่ออุปกรณ์ของคุณอยู่ในโหมดแนวนอนTextInputEditText
จะแสดงคำใบ้EditText
จะไม่
ฉันมีปัญหานี้และเพิ่งลบบรรทัดนี้ในไฟล์ xml ของฉัน:
android: fitsSystemWindows = "true"
และข้อผิดพลาดก็หายไป