Delayed Scrolling Behavior In An App With Scrolling "prominent Top App Bar" In Android
Current unexpected behaviour: Required scrolling behaviour: I’m experiencing some unexpected scrolling behaviour in an Android Kotlin app with a scrolling 'prominent top app b
Solution 1:
To fix this issue, with the scrolling behaviour, this code:
app:layout_behavior="@string/appbar_scrolling_view_behavior"
needs to be moved from the NestedScrollView element in the fragment_trains.xml file, to the fragment element in the activity_main.xml file. Here are the new xml layout files to fix this issue:
New activity_main.xml:
<?xml version="1.0" encoding="utf-8"?><androidx.coordinatorlayout.widget.CoordinatorLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:id="@+id/container"android:layout_width="match_parent"android:layout_height="match_parent"><com.google.android.material.appbar.AppBarLayoutandroid:id="@+id/appbar"android:layout_width="match_parent"android:layout_height="128dp"app:liftOnScroll="true"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"android:focusable="false"app:liftOnScrollTargetViewId="@id/nav_host_fragment"
><com.google.android.material.appbar.CollapsingToolbarLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"app:expandedTitleMarginStart="28dp"app:expandedTitleMarginBottom="28dp"app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"app:contentScrim="?attr/colorPrimary"app:statusBarScrim="?attr/colorPrimaryVariant"app:expandedTitleTextAppearance="@style/Train.TextAppearance.MaterialComponents.Headline6"app:collapsedTitleTextAppearance="@style/Train.TextAppearance.MaterialComponents.Headline6"><com.google.android.material.appbar.MaterialToolbarandroid:id="@+id/toolbar"android:layout_width="match_parent"android:layout_height="?attr/actionBarSize"app:layout_scrollFlags="scroll|enterAlways|snap"android:minHeight="80dp"android:elevation="0dp"android:title="@string/app_name"app:layout_collapseMode="pin"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:menu="@menu/top_app_bar"style="@style/Widget.MaterialComponents.Toolbar.Primary"
/></com.google.android.material.appbar.CollapsingToolbarLayout></com.google.android.material.appbar.AppBarLayout><fragmentandroid:id="@+id/nav_host_fragment"app:layout_behavior="@string/appbar_scrolling_view_behavior"android:name="androidx.navigation.fragment.NavHostFragment"android:layout_width="match_parent"android:layout_height="match_parent"app:defaultNavHost="true"android:layout_marginBottom="110dp"app:navGraph="@navigation/mobile_navigation" /><com.google.android.material.bottomnavigation.BottomNavigationViewandroid:id="@+id/nav_view"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="@color/colorPrimary"app:itemIconTint="@color/bnv_tab_item_foreground"app:itemTextColor="@color/bnv_tab_item_foreground"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"android:layout_gravity="bottom"app:menu="@menu/bottom_nav_menu" /></androidx.coordinatorlayout.widget.CoordinatorLayout>
New fragment_trains.xml:
<?xml version="1.0" encoding="utf-8"?><androidx.core.widget.NestedScrollViewxmlns:app="http://schemas.android.com/apk/res-auto"xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/colorBackground"><LinearLayoutandroid:id="@+id/temp"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><!-- Travel info section --><TextViewandroid:id="@+id/text_travelinfoheader"style="@style/TrainMediumCaption"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginStart="29dp"android:layout_marginLeft="29dp"android:layout_marginTop="29dp"android:layout_marginEnd="29dp"android:layout_marginRight="29dp"android:gravity="start"android:textAlignment="gravity"app:layout_constraintEnd_toEndOf="parent"
/><com.google.android.material.card.MaterialCardViewxmlns:card_view="http://schemas.android.com/apk/res-auto"android:id="@+id/travelinfocard"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="9dp"android:layout_marginBottom="9dp"android:layout_marginLeft="12dp"android:layout_marginRight="12dp"card_view:cardCornerRadius="4dp"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:cardElevation="1dp"app:layout_constraintTop_toBottomOf="@+id/text_travelinfoheader"><TextViewandroid:id="@+id/text_travelinfo"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="19dp" /></com.google.android.material.card.MaterialCardView><!-- Next trains section --><TextViewandroid:id="@+id/text_nexttrainheader"style="@style/TrainMediumCaption"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginStart="29dp"android:layout_marginLeft="29dp"android:layout_marginTop="9dp"android:layout_marginEnd="29dp"android:layout_marginRight="29dp"android:gravity="start"android:textAlignment="gravity"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/travelinfocard" /><androidx.recyclerview.widget.RecyclerViewandroid:id="@+id/nextrains_recyclerview"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="9dp"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/text_nexttrainheader" /></LinearLayout></androidx.core.widget.NestedScrollView>
Here is the result, with the correct scrolling behaviour:
Post a Comment for "Delayed Scrolling Behavior In An App With Scrolling "prominent Top App Bar" In Android"