Android EditText - 显示顶部图标时文本移动

时间:2015-03-08 16:50:35

标签: java android android-edittext

我正在使用方法setCompoundDrawablesWithIntrinsicBounds()在EditText上显示图标,情况如下:

enter image description here

当我显示顶部图标时,文本跳跃/向下移动。

enter image description here

我设置了paddingTop& marginTop of editText为0dp,但没有帮助。任何想法?

<EditText android:id="@+id/editText_Search" android:layout_width="fill_parent" android:layout_height="80dp" android:background="@drawable/shadow" android:drawablePadding="10dp" android:ems="10" android:gravity="center" android:hint="@string/string_EditText_Hint_EnterFieldNumber" android:inputType="textNoSuggestions|textVisiblePassword" android:paddingTop="0dp" android:layout_marginTop="0dp" android:paddingLeft="12dp" android:paddingRight="12dp" android:textColor="@color/ForestGreen" android:textColorHint="@color/Silver" android:textColorLink="@color/White" android:textCursorDrawable="@drawable/black_cursor" > </EditText>

2 个答案:

答案 0 :(得分:0)

您将EditText的高度设置为常量,因此在添加顶部化合物后不会让它展开。

它无关紧要,因为你仍然需要调整底部容器。如果你知道Drawable的高度,只需将bottomPadding设置为相等(程序化)。

您还可以作弊并将drawable设置为alpha 0或空白

答案 1 :(得分:0)

我会使用不同的视图。

<ImageView
    android:layout_height="20dp"
    android:src="@drawable/icon"
    android:visibility="invisible"/>
<EditText
    android:marginBottom="20dp"/>

假设20dp是你的图标高度。这样,EditText内容将始终保持在框中,您可以通过调用imageView.setVisibility(View.VISIBLE)imageView.setVisibility(View.INVISIBLE)来显示/隐藏图标。