Ich habe versucht, ein Coordinator Layout in meiner Android App zu verwenden. Ich habe ein Layout der App-Leiste und eine geschachtelte Bildlaufansicht im Layout des Koordinators. In meiner verschachtelten Scroll-Ansicht habe ich ein lineares Layout mit animateLayoutChanges als true.Android: animateLayoutChanges funktioniert nicht richtig mit CoordinatorLayout
Mein Problem ist, dass, wenn die Höhe der Höhe des linearen Layouts zunimmt, wenn die Elemente Sichtbarkeit als sichtbar machen, das lineare Layout unter Appbar-Layout geht. Erst nach dem Klicken auf den Bildschirm oder dem Scrollen findet der richtige Scroll-Effekt statt.
Ich habe eine einfache Anwendung erstellt, um das Problem zu zeigen. Unten ist das Layout.
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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:animateLayoutChanges="true"
tools:context="testapp.test.MainActivity">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBar"
android:animateLayoutChanges="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:animateLayoutChanges="true"
app:layout_scrollFlags="scroll|enterAlways|snap"
app:popupTheme="@style/AppTheme.PopupOverlay">
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:animateLayoutChanges="true">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show"
android:id="@+id/test_Button"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hide"
android:id="@+id/test_Button2"/>
<TextView
android:id="@+id/test_tv"
android:layout_width="match_parent"
android:layout_height="300dp"
android:visibility="gone"
android:background="@color/colorAccent"/>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
In diesem auf den Show-Button klicken Ich mache die Textansicht sichtbar. Bitte sehen Sie sich die Bilder an, um mein Problem zu verstehen.
Bild 1- Ausgangszustand.
Bild 2- Hier ist das Problem. Ich habe auf Anzeigen geklickt. Jetzt hat sich das lineare Layout aufgrund von Animation durch Animation von Layoutänderungen im App-Bar-Layout bewegt. Wie Sie sehen können, wurde die Schaltfläche Anzeigen unter App-Leiste verschoben.
Bild 3- Wenn ich nun den Bildschirm berühre oder blättere, wird das Scrollen richtig.
Bitte helfen. Ich habe versucht, dies seit Tagen zu beheben. Vielen Dank.
Vielen Dank. Es klappt. –
es funktioniert wie ein Charme. Danke – tauri