¿API 21 proporciona un método para utilizar la siguiente función?
http://www.google.com/design/spec/components/text-fields.html#text-fields-floating-labels
Estoy tratando de hacer flotar las sugerencias de EditText.
¡Gracias!
¿API 21 proporciona un método para utilizar la siguiente función?
http://www.google.com/design/spec/components/text-fields.html#text-fields-floating-labels
Estoy tratando de hacer flotar las sugerencias de EditText.
¡Gracias!
Respuestas:
Necesita agregar lo siguiente al archivo build.gradle de su módulo:
implementation 'com.google.android.material:material:1.0.0'
Y use com.google.android.material.textfield.TextInputLayout en su 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>
Indicación flotante EditText:
Agregue la siguiente dependencia en gradle:
compile 'com.android.support:design:22.2.0'
En diseño:
<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'
.
Sí, a partir del 29 de mayo de 2015, esta funcionalidad ahora se proporciona en la biblioteca de compatibilidad de diseño de Android
Esta biblioteca incluye soporte para
La biblioteca de soporte de Android se puede importar dentro de gradle en las dependencias:
compile 'com.android.support:design:22.2.0'
¡Debería incluirse en GradlePlease! Y como ejemplo para usarlo:
<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>
Por cierto, es posible que el editor no comprenda que AutoCompleteTextView está permitido dentro de TextInputLayout.
Android no ha proporcionado un método nativo. Ni AppCompat.
Pruebe esta biblioteca: https://github.com/rengwuxian/MaterialEditText
Esto puede ser lo que quieras.
Importe las bibliotecas de soporte. En el archivo build.gradle de su proyecto, agregue las siguientes líneas en las dependencias del proyecto:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:design:22.2.0'
compile 'com.android.support:appcompat-v7:22.2.0'
}
Utilice el siguiente TextInputLayout en su diseño de interfaz de usuario:
<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>
Entonces, llame a setHint en TextInputLayout justo después de la llamada a setContentView porque, para animar la etiqueta flotante, solo necesita establecer una pista, usando el método setHint.
final TextInputLayout usernameWrapper = (TextInputLayout) findViewById(R.id.usernameWrapper);
usernameWrapper.setHint("Username");
setHint()
. Funciona con la sugerencia establecida en el EditText
xml de diseño.
La sugerencia de @ andruboy de https://gist.github.com/chrisbanes/11247418 es probablemente tu mejor opción.
https://github.com/thebnich/FloatingHintEditText funciona con appcompat-v7 v21.0.0, pero dado que v21.0.0 no admite colores de acento con subclases de EditText
, el subrayado FloatingHintEditText
será el negro o blanco sólido predeterminado. Además, el relleno no está optimizado para el estilo Material EditText
, por lo que es posible que deba ajustarlo.
No, no lo hace. Esperaría esto en una futura versión de la API, pero por ahora estamos atascados con EditText. Otra opción es esta biblioteca:
https://github.com/marvinlabs/android-floatinglabel-widgets
Para una manera más fácil de usar InputTextLayout, he creado esta biblioteca que corta su código XML a menos de la mitad y también le brinda la capacidad de establecer un mensaje de error, así como un mensaje de sugerencia y una manera fácil de hacer su validaciones. https://github.com/TeleClinic/SmartEditText
Simplemente agregue
compile 'com.github.TeleClinic:SmartEditText:0.1.0'
Entonces puedes hacer algo como esto:
<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.*" />
Utilice lo TextInputLayout
proporcionado por la biblioteca de componentes de materiales :
<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>