API 21, aşağıdaki özelliği kullanmak için bir yöntem sağlar mı:
http://www.google.com/design/spec/components/text-fields.html#text-fields-floating-labels
EditText ipuçlarını kaydırmaya çalışıyorum.
Teşekkürler!
API 21, aşağıdaki özelliği kullanmak için bir yöntem sağlar mı:
http://www.google.com/design/spec/components/text-fields.html#text-fields-floating-labels
EditText ipuçlarını kaydırmaya çalışıyorum.
Teşekkürler!
Yanıtlar:
Aşağıdakileri modül build.gradle dosyanıza eklemeniz gerekir:
implementation 'com.google.android.material:material:1.0.0'
XML'nizde com.google.android.material.textfield.TextInputLayout kullanın:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/my_hint">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="UserName"/>
</com.google.android.material.textfield.TextInputLayout>
Kayan ipucu EditText:
Aşağıdaki bağımlılığı gradle'a ekleyin:
compile 'com.android.support:design:22.2.0'
Düzende:
<android.support.design.widget.TextInputLayout
android:id="@+id/text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="UserName"/>
</android.support.design.widget.TextInputLayout>
22.2.0
implementation 'com.google.android.material:material:1.0.0-rc01'
.
Evet, 29 Mayıs 2015 itibariyle bu işlevsellik artık Android Tasarım Destek Kitaplığı'nda sağlanmaktadır
Bu kitaplık aşağıdakileri içerir:
Android destek kitaplığı, bağımlılıklarda gradle içinde içe aktarılabilir:
compile 'com.android.support:design:22.2.0'
GradlePlease'e dahil edilmelidir! Ve bunu kullanmak için bir örnek olarak:
<android.support.design.widget.TextInputLayout
android:id="@+id/to_text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<AutoCompleteTextView
android:id="@+id/autoCompleteTextViewTo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="To"
android:layout_marginTop="45dp"
/>
</android.support.design.widget.TextInputLayout>
Btw, editör TextInputLayout içinde AutoCompleteTextView'a izin verildiğini anlayamayabilir.
Android yerel bir yöntem sağlamadı. Ne de AppCompat.
Bu kitaplığı deneyin: https://github.com/rengwuxian/MaterialEditText
İstediğin bu olabilir.
Destek Kitaplıklarını İçe Aktar, Projenizin build.gradle dosyasında, projenin bağımlılıklarına aşağıdaki satırları ekleyin:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:design:22.2.0'
compile 'com.android.support:appcompat-v7:22.2.0'
}
Kullanıcı Arayüzü Düzeninizde aşağıdaki TextInputLayout öğesini kullanın:
<android.support.design.widget.TextInputLayout
android:id="@+id/usernameWrapper"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:hint="Username"/>
</android.support.design.widget.TextInputLayout>
Bundan sonra, setContentView çağrısından hemen sonra TextInputLayout üzerinde setHint çağırın çünkü kayan etikete animasyon uygulamak için setHint yöntemini kullanarak bir ipucu ayarlamanız yeterlidir.
final TextInputLayout usernameWrapper = (TextInputLayout) findViewById(R.id.usernameWrapper);
usernameWrapper.setHint("Username");
setHint()
. EditText
Xml düzeninde ayarlanan ipucu ile çalışır .
@ andruboy'un https://gist.github.com/chrisbanes/11247418 önerisi muhtemelen en iyi seçeneğinizdir.
https://github.com/thebnich/FloatingHintEditText türü appcompat-v7 v21.0.0 ile çalışır, ancak v21.0.0, alt sınıflarında vurgulu renkleri desteklemediğinden, alt EditText
çizgisi FloatingHintEditText
varsayılan düz siyah veya beyaz olacaktır. Ayrıca dolgu Materyal stili için optimize edilmemiştir EditText
, bu nedenle onu ayarlamanız gerekebilir.
Hayır değil. Bunu gelecekteki bir API sürümünde beklerdim, ancak şimdilik EditText ile sıkışıp kaldık. Diğer bir seçenek de bu kitaplıktır:
https://github.com/marvinlabs/android-floatinglabel-widgets
InputTextLayout'u kullanmanın daha kolay bir yolu için, XML kodunuzu yarıdan daha aza indiren bu kitaplığı oluşturdum ve ayrıca bir hata mesajı ve bir ipucu mesajı ayarlayabilmenizi ve işinizi yapmanın kolay bir yolunu sağladım. doğrulamalar. https://github.com/TeleClinic/SmartEditText
Basitçe ekleyin
compile 'com.github.TeleClinic:SmartEditText:0.1.0'
O zaman bunun gibi bir şey yapabilirsiniz:
<com.teleclinic.kabdo.smartmaterialedittext.CustomViews.SmartEditText
android:id="@+id/emailSmartEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:setLabel="Email"
app:setMandatoryErrorMsg="Mandatory field"
app:setRegexErrorMsg="Wrong email format"
app:setRegexType="EMAIL_VALIDATION" />
<com.teleclinic.kabdo.smartmaterialedittext.CustomViews.SmartEditText
android:id="@+id/passwordSmartEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:setLabel="Password"
app:setMandatoryErrorMsg="Mandatory field"
app:setPasswordField="true"
app:setRegexErrorMsg="Weak password"
app:setRegexType="MEDIUM_PASSWORD_VALIDATION" />
<com.teleclinic.kabdo.smartmaterialedittext.CustomViews.SmartEditText
android:id="@+id/ageSmartEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:setLabel="Age"
app:setMandatory="false"
app:setRegexErrorMsg="Is that really your age :D?"
app:setRegexString=".*\\d.*" />
Material Components LibraryTextInputLayout
tarafından sağlananları kullanın :
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Label">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="match_parent" />
</com.google.android.material.textfield.TextInputLayout>