การขยายข้อความข้อผิดพลาด TextInputLayout

ฉันกำลังใช้ TextInputLayout กับ AppCompatEditText ที่มีพื้นหลังตามรูปร่าง xml ที่กำหนดเองสำหรับ AppCompatEditText เมื่อใดก็ตามที่ฉันตั้งค่าข้อผิดพลาด บรรทัดข้อผิดพลาดจะเริ่มจากจุดเริ่มต้นของเค้าโครง มีวิธีใดที่จะเพิ่มช่องว่างภายในให้กับบรรทัดข้อผิดพลาดนั้น

ป้อนคำอธิบายรูปภาพที่นี่


comment
อ้างถึง stackoverflow.com/questions/32609710/   -  person sasikumar    schedule 21.01.2016
comment
คุณช่วยอัปเดตคำถามนี้ด้วยรหัสที่คุณลองได้ไหม   -  person Kae10    schedule 21.01.2016
comment
ใช้ setError(null)   -  person BST Kaal    schedule 21.01.2016
comment
ลบภาพพื้นหลังไปที่ EditText ซึ่งจะช่วยแก้ปัญหาภาพพื้นหลังของคุณไปที่ EditText สร้างปัญหานี้   -  person Mahesh Suthar    schedule 17.02.2016


คำตอบ (3)


คุณสามารถอ้างอิงข้อผิดพลาด TextView ได้โดยใช้:

TextView textView = (TextView) inputLayout.findViewById(android.support.design.R.id
            .textinput_error);

จากนั้นคุณสามารถรับพารามิเตอร์เค้าโครงให้ใช้งานได้

person Boris Kozyrev    schedule 31.05.2017
comment
การแฮ็กที่มีความเสี่ยงนั้นมีความเสี่ยง ในขณะเดียวกัน ฉันไม่คิดว่า ID จะเปลี่ยนแปลงในเร็วๆ นี้ - person Aba; 20.05.2018
comment
โปรดทราบว่ามุมมองข้อความแสดงข้อผิดพลาดจะถูกสร้างขึ้นเมื่อมีการแสดงข้อผิดพลาดเท่านั้น ดังนั้น คุณจะต้องเปลี่ยนพารามิเตอร์หลังจากที่คุณแสดงข้อผิดพลาดใน TextInputLayout ของคุณ - person Almighty; 22.05.2019

ฉันพยายามแก้ไขปัญหานี้ และนี่คือสิ่งที่ใช้ได้ผลสำหรับฉัน:

การถอดช่องว่างภายในพาเรนต์ของพาเรนต์ของมุมมองข้อความข้อผิดพลาดของฉัน

การใช้วิธีแก้ปัญหานี้ ฉันพบข้อผิดพลาด textview (เพราะฉันต้องเพิ่มไอคอนลงไป) แต่ไม่สามารถกำจัดได้ ของช่องว่างภายใน ดังนั้นหลังจากพยายามไม่กี่ครั้งฉันก็รู้ว่า TextInputLayout มีลูก 2 คน ดังนั้นการลบช่องว่างภายในออกจากลูกคนที่สองจึงเป็นกลอุบายและเพื่อให้แน่ใจว่าฉันลบมันออกจากอันแรกด้วย

การใช้ส่วนขยาย Kotlin ฉันพบวิธีแก้ปัญหาใหม่ทั้งหมด

/**
 * TextInputLayout
 */
fun TextInputLayout.removePadding() {
    for (i in 0 until this.childCount) {
        this.getChildAt(i).setPadding(0)
    }
}

คุณสามารถทำได้ใน java โดยใช้ตรรกะเดียวกัน

ป้อนคำอธิบายรูปภาพที่นี่

person einschneidend    schedule 13.05.2021

person    schedule
comment
สำหรับ Inner EditText อย่าใช้ MarginLeft และ MarginRight - person Mallikarjuna; 05.03.2017