una poner online limites limite laterales hacer graficas graficar grafica geogebra funcion definir como android android-layout user-interface android-constraintlayout constraint-layout

android - online - ¿Es posible poner un RestraintLayout dentro de un ScrollView?



graficas de limites en geogebra (10)

Dado que el ScrollView real está encapsulado en un CoordinatorLayout con una Toolbar ...

<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay"/> </android.support.design.widget.AppBarLayout> <include layout="@layout/list"/> </android.support.design.widget.CoordinatorLayout>

... Tuve que definir android:layout_marginTop="?attr/actionBarSize" para que el desplazamiento funcionara:

<?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="wrap_content" android:layout_marginTop="?attr/actionBarSize"> <android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <!-- UI elements here --> </android.support.constraint.ConstraintLayout> </ScrollView>

El anterior también funciona con NestedScrollView lugar de ScrollView . Definir android:fillViewport="true" no es necesario para mí.

Recientemente, con Android Studio 2.2 hay un nuevo ConstraintLayout que hace que el diseño sea mucho más fácil, pero a diferencia de RelativeLayout y Linearlayout , no puedo usar un ScrollView para rodear ConstraintLayot . es posible? ¿Si es así, cómo?

es decir

<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:layout_editor_absoluteX="0dp" tools:layout_editor_absoluteY="0dp"> <android.support.constraint.ConstraintLayout android:id="@+id/constraintLayout" android:layout_width="match_parent" android:layout_height="match_parent" tools:layout_editor_absoluteX="0dp" tools:layout_editor_absoluteY="0dp"> <!-- Have whatever children you want inside --> </android.support.constraint.ConstraintLayout> </ScrollView>


Establezca ScrollView layout_height como wrap_content entonces funcionará bien. A continuación se muestran ejemplos que pueden ayudar a alguien. He usado la compile ''com.android.support.constraint:constraint-layout:1.0.2'' para el diseño de restricciones.

<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout android:orientation="vertical" 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:id="@+id/activity_main" tools:context=".ScrollViewActivity"> <ScrollView android:layout_width="0dp" android:layout_height="wrap_content" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" > <android.support.constraint.ConstraintLayout 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="wrap_content" android:orientation="vertical" android:paddingLeft="8dp" android:paddingRight="8dp" android:scrollbars="vertical"> <TextView android:id="@+id/tvCommonSurname" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="surname" android:textAppearance="?android:attr/textAppearanceLarge" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" tools:layout_constraintLeft_creator="1" tools:layout_constraintTop_creator="1" /> <EditText android:id="@+id/editText3" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:ems="10" android:inputType="text" android:maxLines="1" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/tvCommonSurname" tools:layout_constraintLeft_creator="1" tools:layout_constraintRight_creator="1" tools:layout_constraintTop_creator="1" /> <TextView android:id="@+id/tvCommonName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="firstName" android:textAppearance="?android:attr/textAppearanceLarge" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@+id/editText3" tools:layout_constraintLeft_creator="1" tools:layout_constraintTop_creator="1" /> <EditText android:id="@+id/editText" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:ems="10" android:inputType="text" android:maxLines="1" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/tvCommonName" tools:layout_constraintLeft_creator="1" tools:layout_constraintRight_creator="1" tools:layout_constraintTop_creator="1" /> <TextView android:id="@+id/tvCommonLastName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="middleName" android:textAppearance="?android:attr/textAppearanceLarge" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@+id/editText" tools:layout_constraintLeft_creator="1" tools:layout_constraintTop_creator="1" /> <EditText android:id="@+id/editText2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:ems="10" android:inputType="text" android:maxLines="1" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/tvCommonLastName" tools:layout_constraintLeft_creator="1" tools:layout_constraintRight_creator="1" tools:layout_constraintTop_creator="1" /> <TextView android:id="@+id/tvCommonPhone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="Phone number" android:textAppearance="?android:attr/textAppearanceLarge" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@+id/editText2" tools:layout_constraintLeft_creator="1" tools:layout_constraintTop_creator="1" /> <EditText android:id="@+id/editText4" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:digits="0123456789" android:ems="10" android:inputType="phone" android:maxLength="10" android:maxLines="1" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/tvCommonPhone" tools:layout_constraintLeft_creator="1" tools:layout_constraintRight_creator="1" tools:layout_constraintTop_creator="1" /> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="sex" android:textAppearance="?android:attr/textAppearanceLarge" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@+id/editText4" tools:layout_constraintLeft_creator="1" tools:layout_constraintTop_creator="1" /> <RadioGroup xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/radiogroup" android:layout_width="0dp" android:layout_height="48dp" android:layout_marginTop="8dp" android:orientation="horizontal" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView3" tools:layout_constraintLeft_creator="1" tools:layout_constraintTop_creator="1"> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="pirates" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ninjas" /> </RadioGroup> <TextView android:id="@+id/tvCommonDOB" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="dob" android:textAppearance="?android:attr/textAppearanceLarge" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@+id/radiogroup" tools:layout_constraintLeft_creator="1" tools:layout_constraintTop_creator="1" /> <EditText android:id="@+id/editText5" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:ems="10" android:inputType="date" android:maxLines="1" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/tvCommonDOB" tools:layout_constraintLeft_creator="1" tools:layout_constraintRight_creator="1" tools:layout_constraintTop_creator="1" /> <TextView android:id="@+id/tvCommonLivingCity" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="livingCity" android:textAppearance="?android:attr/textAppearanceLarge" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@+id/editText5" tools:layout_constraintLeft_creator="1" tools:layout_constraintTop_creator="1" /> <EditText android:id="@+id/editText34" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:ems="10" android:inputType="text" android:maxLines="1" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/tvCommonLivingCity" tools:layout_constraintLeft_creator="1" tools:layout_constraintRight_creator="1" tools:layout_constraintTop_creator="1" /> <TextView android:id="@+id/tvCommonPlaceOfBithday" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="placeOfBirth" android:textAppearance="?android:attr/textAppearanceLarge" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@+id/editText34" tools:layout_constraintLeft_creator="1" tools:layout_constraintTop_creator="1" /> <EditText android:id="@+id/editText6" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:ems="10" android:inputType="text" android:maxLines="1" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/tvCommonPlaceOfBithday" tools:layout_constraintLeft_creator="1" tools:layout_constraintRight_creator="1" tools:layout_constraintTop_creator="1" /> <TextView android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:text="education" android:textAppearance="?android:attr/textAppearanceLarge" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@+id/editText6" tools:layout_constraintLeft_creator="1" tools:layout_constraintTop_creator="1" /> <Spinner android:id="@+id/spinner_id" android:layout_width="0dp" android:layout_height="48dp" android:layout_marginTop="8dp" android:spinnerMode="dialog" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView4" tools:layout_constraintLeft_creator="1" tools:layout_constraintRight_creator="1" tools:layout_constraintTop_creator="1" /> </android.support.constraint.ConstraintLayout> </ScrollView> </android.support.constraint.ConstraintLayout>


He informado el error al equipo de Google.

Puedes verlo here .


He pasado 2 días intentando convertir diseños a ConstraintLayout en la llamada versión "estable" de Android Studio 2.2 y no tengo ScrollView para trabajar en el diseñador. No voy a comenzar por la ruta de agregar restricciones en XML para las Views que están más abajo en el desplazamiento. Después de todo esto se supone que es una herramienta de diseño visual.

Y la cantidad de errores de representación, desbordamientos de pila y problemas de tema que he tenido me ha llevado a concluir que toda la implementación de RestraintLayout todavía está plagada de errores. A menos que esté desarrollando diseños simples, lo dejaría bien solo hasta que haya tenido algunas iteraciones más al menos.

Son 2 días que no voy a volver.


Hubo un error con ConstraintLayout dentro de ScrollViews y se ha solucionado. Google ha corregido el error en Android Studio 2.2 Preview 2 (restrictintlayout 1.0.0-alpha2).

Consulte este enlace para obtener una nueva actualización (Vista previa 2): funciona correctamente dentro de ScrollView y RecycleView



No olvide las tools:context=".YouClassName" propiedad en ScrollView .

Es lo que estaba causando el bloqueo de mi aplicación.


No olvide que si restringe la parte inferior de algunas vistas a la parte inferior del diseño, la vista de desplazamiento no se puede desplazar.


Tuve un error de que ConstraintLayout no está permitido, luego agregué android.support.constraint.ConstraintLayout y está funcionando. Soy un principiante y no entiendo por qué.


usar NestedScrollView con viewport true funciona bien para mí

<android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true"> <android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="700dp"> </android.support.constraint.ConstraintLayout> </android.support.v4.widget.NestedScrollView>