Niedawno w Android Studio 2.2 pojawił się nowy ConstraintLayout, który znacznie ułatwia projektowanie, ale w przeciwieństwie do RelativeLayout
i Linearlayout
nie mogę używać ScrollView
do otaczania ConstraintLayot
. czy to możliwe? Jeśli tak to jak?
to znaczy
<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
Seth Painter
źródło
źródło
layout_height="wrap_content"
, aplikacja wyświetla pusty ekran, ale jeśli używamlayout_height="match_parent"
, aplikacja nie przewija się.Odpowiedzi:
Wystąpił błąd w ConstraintLayout w ScrollViews i został naprawiony. Google naprawił błąd w Android Studio 2.2 Preview 2 (constraintlayout 1.0.0-alpha2).
Sprawdź to łącze, aby uzyskać nową aktualizację ( wersja zapoznawcza 2): działa poprawnie w ScrollView i RecycleView
Rozwiązanie 1:
Rozwiązanie 2:
źródło
Spróbuj dodać
android:fillViewport="true"
do ScrollView.Znalazłem rozwiązanie tutaj: LinearLayout nie rozwija się wewnątrz ScrollView
źródło
używanie
NestedScrollView
z widocznym obszarem true działa dobrze dla mnieźródło
Ustaw
ScrollView
layout_height
jakowrap_content
wtedy będzie działać dobrze. Poniżej przykład, który może komuś pomóc. Użyłemcompile 'com.android.support.constraint:constraint-layout:1.0.2'
do układu ograniczeń.źródło
Nie zapominaj, że jeśli ograniczysz dolną część widoku do dołu układu z ograniczeniami, funkcja Scrollview nie może być przewijana.
źródło
Spróbuj dodać trochę dopełnienia do układu ograniczeń, jak poniżej
źródło
Spędziłem 2 dni próbując przekonwertować układy do
ConstraintLayout
tzw. „Stabilnej” wersji Android Studio 2.2 i nie muszęScrollView
pracować w projektancie. Nie zamierzam zaczynać od dodawania ograniczeń w XML,Views
ponieważ są one dalej w dół przewijania. W końcu ma to być narzędzie do projektowania wizualnego.A liczba błędów renderowania, przepełnienia stosu i problemów z motywami, które miałem, doprowadziła mnie do wniosku, że cała
ConstraintLayout
implementacja jest nadal pełna błędów. O ile nie tworzysz prostych układów, zostawiłbym go w spokoju, dopóki nie będzie miał co najmniej kilku kolejnych iteracji.To 2 dni, nie wrócę.
źródło
Ponieważ rzeczywistość
ScrollView
jest zamknięta w aCoordinatorLayout
zToolbar
...... musiałem zdefiniować,
android:layout_marginTop="?attr/actionBarSize"
aby przewijanie działało:Powyższe działa również z
NestedScrollView
zamiastScrollView
. Definiowanieandroid:fillViewport="true"
nie jest mi potrzebne.źródło
Każdy, kto ustawił poniżej właściwość na
ScrollView ::
android:fillViewport="true"
układ ograniczeń:
android:layout_height="wrap_content"
I nadal nie działa, więc upewnij się, że nie ustawiłeś ograniczenia dolnego wewnętrznego układu przewijalnego (RecycleView) na dół elementu nadrzędnego.
Dodaj poniższe linie kodu:
Pamiętaj, aby usunąć poniższe ograniczenie:
Pełny kod
źródło
Nie zapomnij o
tools:context=".YouClassName"
nieruchomości wScrollView
.To właśnie powodowało awarię mojej aplikacji.
źródło