Bietet API 21 eine Methode zur Verwendung der folgenden Funktion:
http://www.google.com/design/spec/components/text-fields.html#text-fields-floating-labels
Ich versuche, die EditText-Hinweise zu schweben.
Vielen Dank!
Bietet API 21 eine Methode zur Verwendung der folgenden Funktion:
http://www.google.com/design/spec/components/text-fields.html#text-fields-floating-labels
Ich versuche, die EditText-Hinweise zu schweben.
Vielen Dank!
Antworten:
Sie müssen Ihrer Datei build.gradle Folgendes hinzufügen:
implementation 'com.google.android.material:material:1.0.0'
Und verwenden Sie com.google.android.material.textfield.TextInputLayout in Ihrem XML:
<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>
Gleitender Hinweis EditText:
Fügen Sie die folgende Abhängigkeit in Gradle hinzu:
compile 'com.android.support:design:22.2.0'
Im Layout:
<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'
.
Ja, seit dem 29. Mai 2015 ist diese Funktionalität in der Android Design Support Library verfügbar
Diese Bibliothek enthält Unterstützung für
Die Android-Unterstützungsbibliothek kann in gradle in den Abhängigkeiten importiert werden:
compile 'com.android.support:design:22.2.0'
Es sollte in GradlePlease enthalten sein! Und als Beispiel, um es zu verwenden:
<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>
Übrigens versteht der Editor möglicherweise nicht, dass AutoCompleteTextView in TextInputLayout zulässig ist.
Android hat keine native Methode bereitgestellt. Noch der AppCompat.
Probieren Sie diese Bibliothek aus: https://github.com/rengwuxian/MaterialEditText
Dies könnte sein, was Sie wollen.
Importieren Sie die Unterstützungsbibliotheken. Fügen Sie in der build.gradle-Datei Ihres Projekts die folgenden Zeilen in die Abhängigkeiten des Projekts ein:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:design:22.2.0'
compile 'com.android.support:appcompat-v7:22.2.0'
}
Verwenden Sie das folgende TextInputLayout in Ihrem UI-Layout:
<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>
Rufen Sie dann setHint in TextInputLayout direkt nach dem Aufruf von setContentView auf, da Sie zum Animieren der schwebenden Beschriftung nur einen Hinweis mit der Methode setHint festlegen müssen.
final TextInputLayout usernameWrapper = (TextInputLayout) findViewById(R.id.usernameWrapper);
usernameWrapper.setHint("Username");
setHint()
. Es funktioniert mit dem Hinweis, der EditText
in der Layout-XML festgelegt ist.
@ andruboys Vorschlag von https://gist.github.com/chrisbanes/11247418 ist wahrscheinlich die beste Wahl .
https://github.com/thebnich/FloatingHintEditText funktioniert mit appcompat-v7 v21.0.0. Da v21.0.0 jedoch keine Akzentfarben mit Unterklassen von unterstützt EditText
, ist die Unterstreichung von FloatingHintEditText
standardmäßig das feste Schwarz oder Weiß. Außerdem ist die Polsterung nicht für den Materialstil optimiert EditText
, sodass Sie sie möglicherweise anpassen müssen.
Nein, tut es nicht. Ich würde dies in einer zukünftigen API-Version erwarten, aber im Moment bleiben wir bei EditText. Eine weitere Option ist diese Bibliothek:
https://github.com/marvinlabs/android-floatinglabel-widgets
Um die Verwendung des InputTextLayout zu vereinfachen, habe ich diese Bibliothek erstellt, die Ihren XML-Code auf weniger als die Hälfte reduziert und Ihnen die Möglichkeit bietet, eine Fehlermeldung sowie eine Hinweisnachricht festzulegen, und eine einfache Möglichkeit, dies zu tun Validierungen. https://github.com/TeleClinic/SmartEditText
Einfach hinzufügen
compile 'com.github.TeleClinic:SmartEditText:0.1.0'
Dann können Sie so etwas tun:
<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.*" />