我正在尝试向TextInputLayout添加一个左图标,但是文本会覆盖Icon。 当我添加填充时,一切都会一起移动。
我试过
android:drawableLeft="@drawable/ic_store_white_48dp"
android:drawablePadding="50dp"
android:drawableStart="@drawable/ic_store_white_48dp"
但它不起作用! 我应该为每一行实现一个LinearLayout水平,但我想确保没有更简单的方法来做它
这是我的代码布局:
<android.support.design.widget.TextInputLayout
android:id="@+id/til_calle"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/et_calle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_store_white_48dp"
android:drawablePadding="50dp"
android:drawableStart="@drawable/ic_store_white_48dp"
android:hint="Calle"
android:inputType="text" />
</android.support.design.widget.TextInputLayout>
答案 0 :(得分:27)
确保您使用的是最新的Design
库,Design
和AppCompat
所需的只是:
compile 'com.android.support:design:23.2.0'
尝试使用Design的库TextInputLayout
和AppCompat的AppCompatEditText
。
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="@android:color/white"
android:textColorHint="@color/loginHint">
<android.support.v7.widget.AppCompatEditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:imeOptions="actionNext"
android:inputType="textEmailAddress|textNoSuggestions"
android:minWidth="350dp"
android:drawableLeft="@drawable/ic_store_white_48dp"
android:drawableStart="@drawable/ic_store_white_48dp"
android:textColor="@android:color/white"
android:textColorHint="@color/loginHint"
android:textCursorDrawable="@null"
app:backgroundTint="@android:color/white"/>
</android.support.design.widget.TextInputLayout>
答案 1 :(得分:3)
这是我的代码布局:
<android.support.design.widget.TextInputLayout
android:id="@+id/input_layout_username"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/input_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:drawableLeft="@drawable/icon_user"
android:drawableStart="@drawable/icon_user"
android:drawablePadding="10dp"
android:hint="User Name" />
</android.support.design.widget.TextInputLayout>
<强>机器人:drawablePadding =&#34; 10dp&#34; 强>
它的工作
答案 2 :(得分:3)
这是在Android的问题跟踪器
上报告的错误https://code.google.com/p/android/issues/detail?id=225836
现在已在最新版本的Design Support Library(v25.0.1)中修复了它。只需将所需的依赖项添加到构建gradle ...
git-clean
答案 3 :(得分:2)
通过Material Components library,您可以使用 app:startIconDrawable
属性更改TextInputLayout
中的左侧图标。
类似的东西:
<com.google.android.material.textfield.TextInputLayout
android:hint="Hint text"
app:startIconDrawable="@drawable/ic_add_24px"
...>
<com.google.android.material.textfield.TextInputEditText/>
</com.google.android.material.textfield.TextInputLayout>
答案 4 :(得分:0)
是。目前它是布局的一个错误。 您可以尝试将leftPadding提供给EditText,或者在文本之前提供一些blank_spaces。
答案 5 :(得分:0)
很简单,当添加passwordToggleEnabled
时,它会自动在右侧添加眼睛图标,而drawableLeft
消失了。因此您必须删除drawableLeft
并仅使用drawableStart
。
<android.support.design.widget.TextInputLayout
android:id="@+id/til_calle"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/et_calle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawablePadding="50dp"
android:drawableStart="@drawable/ic_store_white_48dp"
android:hint="Calle"
android:inputType="text" />
答案 6 :(得分:0)
如果你使用的是材质输入布局,那么你只需要在输入布局的xml代码中添加一行
app:startIconDrawable="@drawable/ic_baseline_content_paste_24"