问题
I recently used TextInputEditText and I got lint error that singleLine attribute is Deprecated
<android.support.design.widget.TextInputEditText
android:id="@+id/my_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/string_hint_dob"
android:lines="5"/>
</android.support.design.widget.TextInputLayout>
Getting strike-through as below:
Is there any alternative way for this?
回答1:
The android:singleLine attribute has been deprecated since API Level 3. You can achieve the same behaviour by using android:maxLines, which allows you to specify an arbitrary number of lines. This is superior to android:singleLine, which restricts you to only allowing one line.
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minLines="2"
android:maxLines="2" /> <!-- can specify arbitrary number of max lines -->
回答2:
android:singleLine is deprecated since API 3, you have to use android:maxLines instead (in your case android:maxLines="1").
The reason of the deprecation is for its bad performance. Anyway the singleLine attribute will not be removed because it's still the only way to make some effects that android:maxLines can't make:
e.g.
This will produce a scrolling horizontal text on one line if the text is selected.
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="end"
android:scrollHorizontally="true" />
Instead, this won't work:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:ellipsize="end"
android:scrollHorizontally="true" />
回答3:
Always define input type for single line
ex : inputType="text"
You don't need to do anything else.
回答4:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:maxLines="1"
/>
use android:inputType="text" and android:maxLines="1" togather
回答5:
Following a commment of Juan José Melero Gómez, I would like to add more information:
If you are attempting to set an imeAction to your EditText such as actionSearch, setting android:maxLines="1" won't be enough. Adding android:inputType="text" is mandatory if you want to see the search icon.
回答6:
Needed replace android:singleLine="true" to android:maxLines="1" if you want indicate imeOptions needed add this line android:inputType="number|text ..."
来源:https://stackoverflow.com/questions/37080073/alternative-of-singleline-attribute-deprecated-textinputedittext