Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
324 views
in Technique[技术] by (71.8m points)

android - Why does attribute maxWidth not work for EditText?

It seems that maxWidth has no effect on EditText. Could anyone shed some light on this?

<EditText
    android:id="@+id/editTextFoo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:autofillHints="port"
    android:ems="10"
    android:maxWidth="100dp"
    tools:targetApi="o" />

The above code results in the following: enter image description here

If I set layout_width="100dp" as following:

<EditText
    android:id="@+id/editTextFoo"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:autofillHints="port"
    android:ems="10"
    android:maxWidth="100dp"
    tools:targetApi="o" />

the width is correct: enter image description here


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Yes I just checked in the IDE and it's because ems="10" is preventing the view from maintaining maxWidth 100dp. Apparently ems of 10 requires a larger width so it is overriding the maxWidth attribute.

Instead of ems go with minWidth to prevent the view from shrinking.

Alternatively, you can use maxEms and minEms.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...