2015-03-08 25 views
1

我顯示上的EditText與方法setCompoundDrawablesWithIntrinsicBounds()圖標時,情況如下:的Android的EditText - 文本移動顯示頂部圖標

enter image description here

當我展示上面的圖標,文本跳轉/下移。

enter image description here

我設置paddingTop & EDITTEXT的marginTop作爲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>

+0

問題是什麼? – Apurva 2015-03-08 16:57:25

+1

如何防止文本在出現刻度圖標時向下移動 – simbo1905 2015-03-08 17:02:00

+0

問題是,爲什麼頂部圖標將文本向下移動,即使編輯文本中有空格。我應該怎麼做頂部圖標不要移動該文本? – 2015-03-08 17:03:03

回答

0

您正在設置EditText恆定的高度。因此,你不讓它加入頂部複合後擴大。

它不會影響,因爲你仍然需要調整底部容器。如果您知道Drawable的高度,只需將bottomPadding設置爲相等(編程)即可。

你也可以欺騙和設置drawable的底部有一個與alpha 0或空單

+0

那我該怎麼設置呢? – 2015-03-08 17:02:13

+0

其實我試圖設置android:paddingBottom,但它真的很凌亂。你是否說每次我顯示頂部圖標時,我還應該計算底部和底部的填充?它真的不是直接的,我認爲它可以做得更容易。 – 2015-03-08 17:17:14

+0

有沒有辦法在一個簡單的事情對齊。你可以認爲它好像'drawable'不是'TextView'的一部分,'TextView'開始於'drawable'完成+'drawablePadding' – royB 2015-03-08 17:29:43

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)來顯示/隱藏圖標。

+0

這將自動向上/向下整個EditText上移ImageView不可見/可見? – 2015-03-08 19:00:07

+0

您的答案有幾個問題:在圖片中,'TextView'被邊框包圍......以及ImageView會在第邊界。第二:你假設大小......計算大小的程序化會好得多。第三:即使沒有邊框,文本在'TextView'中居中。當圖像可見時,文本無法再居中 – royB 2015-03-08 19:06:16

+1

@ToKra關於可見性的好處'View.INVISIBLE'是即使看不到它,視圖的高度和寬度仍然是佈局的一部分。所以當你設置'View.VISIBLE'時,你不會添加任何東西,而是使其可見。沒有其他元素會移動。當然,您需要一個外部佈局(即框),您可以在其中放置「ImageView」和「EditText」。 – natario 2015-03-08 19:11:42