Bir EditText
iç a kullanıyorum TextInputLayout
, ancak destek kitaplığını 23.2.0'a yükselttikten sonra, logcat'te bu uyarıyı alıyorum, normal EditText
ve a arasındaki fark nedir TextInputEditText
? Bunun için herhangi bir belge bulamıyorum.
Bir EditText
iç a kullanıyorum TextInputLayout
, ancak destek kitaplığını 23.2.0'a yükselttikten sonra, logcat'te bu uyarıyı alıyorum, normal EditText
ve a arasındaki fark nedir TextInputEditText
? Bunun için herhangi bir belge bulamıyorum.
Yanıtlar:
Bunu ben de merak ediyordum, Daniel Wilson belgeleri topladı, ancak eğitimsiz bir göz için bu pek bir şey ifade etmiyor. Her şey şununla ilgili: "ayıklama modu" , alan çok küçük olduğunda, örneğin bir telefondaki manzara gibi, gösterilen görünüm türünü ifade eder. Giriş yöntemi düzenleyicisi (IME) olarak Google Klavye ile Galaxy S4 kullanıyorum.
Odağa (Açıklamaya) bağlı olarak TextInputLayout
, ipucunu düzenleyicinin dışına iten eylemi görebilirsiniz . Burada özel bir şey yok, TextInputLayout
yapılması gereken bu.
Adı düzenlerken, IME'nin düzenlemekte olduğunuz şey hakkında size bir ipucu vermediğini görebilirsiniz.
Açıklamayı düzenlediğinizde, IME'nin düzenlemekte olduğunuz şey hakkında size bir ipucu verdiğini görebilirsiniz.
İki alan arasındaki fark, EditText
VS türleridir TextInputEditText
. Burada önemli olan TextInputLayout
, içinde android:hint
EditText'e sahip olmamasıdır, bu, TextInputEditText
birkaç satırlık Java kodunun büyük bir fark yarattığı durumdur .
<android.support.design.widget.TextInputLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Item Name"
>
<EditText
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Item Description"
>
<android.support.design.widget.TextInputEditText
android:id="@+id/description"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textMultiLine"
android:minLines="4"
android:scrollbars="vertical"
/>
</android.support.design.widget.TextInputLayout>
android:hint
mülkün TextInputEditText
yerine girmesi gerekiyor TextInputLayout
.
TextInputEditText
, kullanıcı arayüzünün bir uygulama detayıdır.
Bunun için herhangi bir belge yoktur, ancak sınıf EditText
tek bir ekstra özellik ile normaldir:
Bu sınıfı kullanmak, IME'de "ayıklama" modundayken bir ipucu görüntülememize olanak tanır.
Özellikle EditorInfo.hintText
. TextInputLayout
Sınıfta, alt EditText
widget'ın bir parçası olmak yerine ipucunu ve görünümünü belirtebileceğinizi fark edeceksiniz .
Bunu yapmanız gerekiyorsa, bir kullanmalısınız, TextInputEditText
böylece TextInputLayout
.
Esasen aynı şeyler ama bence TextInputEditText
daha fazla özelliği ve muhtemelen niteliği var. Olarak değiştirdim TextInputEditText
ve her şey çalıştı ve standartta daha önce olduğu gibi göründü EditText
.
Bu sorunu yaşadım ve xml dosyamdaki şu satırı sildim:
android: fitsSystemWindows = "true"
ve hata ortadan kalktı.