ฉันใช้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"
และข้อผิดพลาดก็หายไป