Android – ¿Cómo hacer una restricción desplazable?
Quiero hacer un diseño que me permite desplazarse hacia abajo utilizando el diseño de restricciones, pero no sé cómo hacerlo. Debe el scrollview ser el padre del constraintlayout como esto?
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true"> <android.support.constraint.ConstraintLayout android:id="@+id/Constraint" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.constraint.ConstraintLayout>
¿O al revés? Tal vez alguien me puede señalar a un buen tutorial sobre esto o dar un ejemplo, no puedo parece encontrar uno.
- Los márgenes de ConstraintLayout no funcionan
- ¿Cómo puedo obtener la última versión de ConstraintLayout para Android?
- Android Studio 2.2 preview 1 Error de EditText
- ¿Cómo centrar varias vistas juntas usando ConstaintLayout?
- Agrupar las vistas en ConstraintLayout para tratarlas como una sola vista
También no sé si esto es un error o alguna configuración que no he configurado pero he visto imágenes como ésta donde hay algunos componentes fuera del blueprint "rectángulo azul" pero son visibles, mientras que en mi lado si me Colocar un componente en el "espacio en blanco" No puedo verlo o moverlo a ninguna parte, y aparece en el árbol de componentes.
ACTUALIZAR
He encontrado una manera de hacer que el diseño de restricción se pueda desplazar en la herramienta de diseño, usando una guía horiontal para empujar hacia abajo el borde de diseño de restricción y extenderlo más allá del dispositivo, después de que puede usar la línea de guía como el nuevo fondo del diseño de restricción Anclar los componentes.
- La pantalla de diseño desapareció en el estudio Android 2.2
- La construcción de Travis CI no funciona con Android Constraint Layout
- La vista Wrap_content dentro de un ConstraintLayout se extiende fuera de la pantalla
- Diferencias entre ConstraintLayout y RelativeLayout
- Espaciar uniformemente las vistas usando ConstraintLayout
- Android Studio ConstraintLayout con ScrollView
Parece que está funcionando, no sé con qué dependencia está trabajando pero en este caso
compile 'com.android.support.constraint:constraint-layout:1.0.2'
Está trabajando, esto es lo que hice
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.design.widget.TextInputLayout android:id="@+id/til_input" android:layout_width="0dp" android:layout_height="wrap_content" android:hint="Escriba el contenido del archivo" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toLeftOf="@+id/btn_save" app:layout_constraintTop_toTopOf="@id/btn_save" app:layout_constraintVertical_chainStyle="spread"> <EditText android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.design.widget.TextInputLayout> <Button android:id="@+id/btn_save" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onClickButtonSave" android:text="Guardar" app:layout_constraintLeft_toRightOf="@+id/til_input" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/txt_content" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="0dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@id/til_input" app:layout_constraintVertical_chainStyle="spread" app:layout_constraintVertical_weight="1" /> <Button android:id="@+id/btn_delete" android:layout_width="0dp" android:layout_height="wrap_content" android:onClick="onClickButtonDelete" android:text="Eliminar" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@id/txt_content" app:layout_constraintVertical_chainStyle="spread" /> </android.support.constraint.ConstraintLayout> </ScrollView>
Scroll Top
Desplazamiento inferior
Para hacer un diseño desplazable, el diseño es correcto. No será desplazable hasta que haya razón para desplazarse (como en cualquier otro diseño). Así que agrega suficiente contenido y será desplazable, al igual que con cualquier diseño (Lineal, Relativo, etc). Sin embargo, no se puede desplazar correctamente en Blueprint o modo de diseño al diseñar con ConstraintLayout y ScrollView.
Sentido:
Puede hacer un ConstraintLayout desplazable, pero no se desplazará correctamente en el editor debido a un error / escenario que no se consideró. Pero aunque el desplazamiento no funciona en el editor, funciona en dispositivos. (He hecho varios desplazamiento COnstraintLayouts, por lo que he probado)
Nota
Respecto a su código. El ScrollView no tiene una etiqueta de cierre, no sé si es el caso en el archivo o si es una copia-pegar falta, pero es posible que desee verlo.
Hay un error en la versión 2.2 que hace imposible desplazar el ConstraintLayout. Supongo que todavía existe. Puede utilizar LinearLayout o RelativeLayout alternativamente.
También, echa un vistazo: ¿Es posible poner un diseño de restricción dentro de un ScrollView .
Constraintlayout es la opción predeterminada para una nueva aplicación. Estoy "aprendiendo a Android" ahora y tuve un tiempo muy difícil averiguar cómo manejar el código de "muestra" por defecto para desplazarse cuando un teclado está arriba. He visto muchas aplicaciones en las que tengo que cerrar el teclado para hacer clic en "enviar" y, a veces, no desaparece. Usando esta jerarquía [ScrollView / ContraintLayout / Fields] está funcionando bien ahora. De esta manera podemos tener los beneficios y la facilidad de uso de ConstraintLayout en una vista desplazable.