Récemment, avec Android Studio 2.2, il y a un nouveau ConstraintLayout qui facilite la conception, mais contrairement à RelativeLayout
et Linearlayout
, je ne peux pas utiliser un ScrollView
pour entourer ConstraintLayot
. Est-ce possible? Si c'est le cas, comment?
c'est à dire
<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>
android
android-layout
user-interface
android-constraintlayout
Peintre Seth
la source
la source
layout_height="wrap_content"
, l'application affiche un écran vide, mais si j'utiliselayout_height="match_parent"
, l'application ne défile pas.Réponses:
Il y avait un bug avec ConstraintLayout dans ScrollViews et il a été corrigé. google a corrigé le bogue dans Android Studio 2.2 Preview 2 (constraintlayout 1.0.0-alpha2).
Vérifiez ce lien pour une nouvelle mise à jour (Aperçu 2): fonctionne correctement dans ScrollView et RecycleView
Solution 1:
Solution 2:
la source
Essayez d'ajouter
android:fillViewport="true"
à ScrollView.J'ai trouvé la solution ici: LinearLayout ne se développant pas dans un ScrollView
la source
utiliser
NestedScrollView
avec viewport true fonctionne bien pour moila source
Définir
ScrollView
layout_height
comme unwrap_content
alors cela fonctionnera bien. Voici un exemple qui peut aider quelqu'un. J'ai utilisécompile 'com.android.support.constraint:constraint-layout:1.0.2'
pour la mise en page des contraintes.la source
N'oubliez pas que si vous contraignez le bas d'une vue au bas de la mise en page, la vue défilement ne peut pas défiler.
la source
Essayez de donner un peu de remplissage en bas à votre disposition de contrainte comme ci-dessous
la source
J'ai passé 2 jours à essayer de convertir des mises en page
ConstraintLayout
dans la version dite "stable" d'Android Studio 2.2 et je n'ai pasScrollView
à travailler dans le concepteur. Je ne vais pas commencer par ajouter des contraintes dans XML pourViews
cela plus loin dans le défilement. Après tout, cela est censé être un outil de conception visuelle.Et le nombre d'erreurs de rendu, de débordements de pile et de problèmes de thème m'a amené à conclure que l'ensemble de l'
ConstraintLayout
implémentation est toujours criblé de bogues. À moins que vous ne développiez des mises en page simples, je le laisserais bien tranquille jusqu'à ce qu'il y ait au moins quelques itérations supplémentaires.Ça fait 2 jours que je ne reviendrai pas.
la source
Puisque le réel
ScrollView
est encapsulé dans unCoordinatorLayout
avec unToolbar
...... j'ai dû définir
android:layout_marginTop="?attr/actionBarSize"
pour que le défilement fonctionne:Ci-dessus fonctionne également avec
NestedScrollView
au lieu deScrollView
. La définitionandroid:fillViewport="true"
n'est pas nécessaire pour moi.la source
N'oubliez pas la
tools:context=".YouClassName"
propriétéScrollView
.C'est ce qui a fait planter mon application.
la source