2016-01-30 64 views
8

我想知道是否可以始終保持標籤展開,而不管EditText中是否有文本。我在源代碼中環顧四周,它是在TextWatcher中使用ValueAnimatorcounter來動畫或不動畫變化。也許我可以在TextInputLayoutEditText上設置一個自定義TextWatcher的定製ValueAnimator保持TextInputLayout始終專注或始終展開標籤

回答

7

TextInputLayout的當前版本專門用於做一件事 - 根據EditText中是否有文本顯示/隱藏幫助標籤。您需要的是不同的行爲,因此您需要與TextInputLayout不同的小部件。這種情況是編寫適合您需求的自定義視圖的最佳人選。

這就是說,你的自定義設置TextWatcherEditText的想法是行不通的或者是因爲TextInputLayout不公開它的內部的任何實際處理動畫 - 既不updateLabelVisibility()setEditText(),魔術Handler,做的工作或其他任何東西。當然,我們當然不想去像這樣的細節的反射路徑,所以...

只需使用​​!它具有以下屬性,完全符合你的要求。

met_floatingLabelAlwaysShown:始終顯示的,而不是輸入/輸出製作動畫的浮動標籤。假設爲默認值。

該庫非常穩定(我在兩個不同的項目中使用它),並有很多選項可供自定義。希望能幫助到你!

+0

良好的漁獲,我已經看到了在這之前的lib,但我想我可以推斷一些邏輯來創建自定義組件特別是我的用例:thumbs_up: – AndyRoid

+0

是的,正如我在第一段中所說 - 這是一個自定義文本視圖的完美候選人。祝你好運! – Vesko

+0

我同意這種解決方案,thx @Vesko – wanz

7

對我的支持設計23.3.0它的工作原理使用有關材料的EditText LIB

   <android.support.design.widget.TextInputLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:hint="wow such hint" 
       app:hintEnabled="true" 
       app:hintAnimationEnabled="false" 
       /> 
+0

這不適用於v25.0.2;文字爲空時,標籤不會展開。 –