android - style - textinputlayout error
Android EditText view Sugerencia flotante en diseƱo de materiales (9)
Android no ha proporcionado un método nativo. Ni el AppCompat.
Pruebe esta biblioteca: https://github.com/rengwuxian/MaterialEditText
Esto podría ser lo que quieres.
¿API 21 proporciona un método para usar la siguiente característica:
http://www.google.com/design/spec/components/text-fields.html#text-fields-floating-labels
Estoy tratando de hacer flotar las sugerencias EditText.
¡Gracias!
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''
}
Use 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>
Luego, llame a setHint en TextInputLayout justo después de la llamada a setContentView porque, para animar la etiqueta flotante, solo necesita establecer una pista, utilizando el método setHint.
final TextInputLayout usernameWrapper = (TextInputLayout) findViewById(R.id.usernameWrapper);
usernameWrapper.setHint("Username");
Intenta de esta manera
dependencies {
compile fileTree(dir: ''libs'', include: [''*.jar''])
compile ''com.android.support:appcompat-v7:23.0.1''
compile ''com.android.support:design:23.0.1''
}
para más referencia haga clic here
La biblioteca de soporte de Android se puede importar dentro de gradle en las dependencias:
compile ''com.android.support:design:22.2.0''
Debe 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, el editor puede no entender que AutoCompleteTextView está permitido dentro de TextInputLayout.
La sugerencia de @ andruboy de gist.github.com/chrisbanes/11247418 es probablemente su mejor opción.
https://github.com/thebnich/FloatingHintEditText
funciona con appcompat-v7 v21.0.0, pero como v21.0.0 no admite colores de acento con subclases de
EditText
, el subrayado de
FloatingHintEditText
será el blanco o negro sólido predeterminado. .
Además, el relleno no está optimizado para el estilo de 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 forma más fácil de usar InputTextLayout, he creado esta biblioteca que reduce su código XML a menos de la mitad, y también le brinda la capacidad de configurar 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.*" />
Sí, a partir del 29 de mayo de 2015, esta funcionalidad ahora se proporciona en la Biblioteca de soporte de diseño de Android
Esta biblioteca incluye soporte para
- Etiquetas flotantes
- Botón de acción flotante
- Snackbar
- Cajón de navegación
- y más
Sugerencia flotante EditText:
Agregue a continuación la 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>