简体   繁体   中英

Android collapsing toolbar

Hey I want to full scroll my screen. What I have done is I have taken an expandable list view in my activity with some view-pager and other views. The expandable listview is scrolling perfectly to in its allotted space but what I want is my whole activity's layout should scroll from top to bottom, here is my xml code :

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout 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"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        tools:context="websters.smartindiaserviceapp.Activities.CategoryDetails1">

        <include
            android:id="@id/tool"
            layout="@layout/toolbar"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />​
        <android.support.design.widget.AppBarLayout
            android:id="@+id/materialup.appbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="56dp"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/main.collapsing"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginEnd="64dp"
            app:expandedTitleMarginStart="48dp"
            app:layout_scrollFlags="scroll|snap">
        <android.support.v4.view.ViewPager
            android:id="@+id/vpBanners"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

        <com.viewpagerindicator.CirclePageIndicator
            android:id="@+id/ciBanners"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|center_horizontal"
            android:layout_marginBottom="10dp"
            android:padding="1dip"
            app:fillColor="#ffffff"
            app:pageColor="#80cccccc" />
        </android.support.design.widget.CollapsingToolbarLayout>
        <LinearLayout
            android:id="@+id/lldesc"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="#ffffff"
            android:gravity="left"
            android:orientation="vertical"
            android:padding="12dp"
            android:layout_below="@+id/main.collapsing"
            app:layout_scrollFlags="scroll|enterAlways|snap">

            <TextView
                android:id="@+id/tvdesc"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="4dp"
                android:layout_marginTop="4dp"
                android:text="First Line"
                android:textAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle"
                android:textColor="@android:color/black" />
            ​
        </LinearLayout>
        <LinearLayout
            android:id="@+id/llservices"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@color/selecteditem"
            android:gravity="center"

            android:orientation="vertical"
            android:padding="12dp"
            android:layout_below="@+id/lldesc"
            app:layout_scrollFlags="scroll|enterAlways|snap">

            <TextView
                android:id="@+id/tvservices"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="4dp"
                android:layout_marginTop="4dp"
                android:text="Services"
                android:textStyle="bold"
                android:textSize="20dp"
                android:textAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle"
                android:textColor="@android:color/white" />

        </LinearLayout>
        </android.support.design.widget.AppBarLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/frstll"
            android:layout_below="@+id/materialup.appbar"
            android:orientation="vertical">

            <ExpandableListView
                android:id="@+id/expandableListView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="#ffffff"
                android:childDivider="#f4f4f4"
                android:dividerHeight="1dp"
                android:groupIndicator="@null" />

        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="end"
            android:orientation="horizontal">
            <android.support.design.widget.FloatingActionButton
                android:id="@+id/fab"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom|right|end"
                android:layout_margin="@dimen/activity_horizontal_margin"
                android:clickable="true"
                android:elevation="8dp"
                android:src="@android:drawable/ic_menu_help"
                app:backgroundTint="#1abc9c" />

        </LinearLayout>
    </RelativeLayout>
    So help to acheive proper scrolling in this layout file,,

This is the layout's screenshot I have acheived from this xml code. Suggest me what I have to change to acheive proper scroll in this. Should I use a scroll view or coordinate layout and how? Help me out guys. I need smooth and proper scrolling in this activity's layout.

在此处输入图片说明

There are many ways, But simple one is - Use a Header View or/and Footer View on the list itself. Essentially, take all the content above your ExpendableListView, put it in another .xml file as a layout and then in code inflate it and add it to the list as a header view.

ie

View header = getLayoutInflater().inflate(R.layout.header, null);
View footer = getLayoutInflater().inflate(R.layout.footer, null);
expandableListView.addHeaderView(header);
expandableListView.addFooterView(footer);

Use this view as your header 在此处输入图片说明

There is also another way using Scroll view and making expandableListView scroll disable .you can find Here

Also there is awesome tutorial here at CoderzPassion .You will find it easier.

try this:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:context="websters.smartindiaserviceapp.Activities.CategoryDetails1">

    <android.support.design.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true">


        <android.support.design.widget.AppBarLayout
            android:id="@+id/materialup.appbar"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:fitsSystemWindows="true"
            android:theme="@style/AppTheme.AppBarOverlay">

            <android.support.design.widget.CollapsingToolbarLayout
                android:id="@+id/main.collapsing"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fitsSystemWindows="true"
                app:contentScrim="?attr/colorPrimary"
                app:expandedTitleMarginEnd="64dp"
                app:expandedTitleMarginStart="48dp"
                app:layout_scrollFlags="scroll|snap">


                <include
                    android:id="@id/tool"
                    layout="@layout/toolbar"
                    android:layout_width="fill_parent"
                    android:layout_height="?attr/actionBarSize" />

                <android.support.v4.view.ViewPager
                    android:id="@+id/vpBanners"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />

                <com.viewpagerindicator.CirclePageIndicator
                    android:id="@+id/ciBanners"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom|center_horizontal"
                    android:layout_marginBottom="10dp"
                    android:padding="1dip"
                    app:fillColor="#ffffff"
                    app:pageColor="#80cccccc" />


                <LinearLayout
                    android:id="@+id/lldesc"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/main.collapsing"
                    android:background="#ffffff"
                    android:gravity="left"
                    android:orientation="vertical"
                    android:padding="12dp"
                    app:layout_scrollFlags="scroll|enterAlways|snap">

                    <TextView
                        android:id="@+id/tvdesc"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="4dp"
                        android:layout_marginTop="4dp"
                        android:text="First Line"
                        android:textAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle"
                        android:textColor="@android:color/black" />
                    ?
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/llservices"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/lldesc"
                    android:background="@color/selecteditem"
                    android:gravity="center"
                    android:orientation="vertical"
                    android:padding="12dp"
                    app:layout_scrollFlags="scroll|enterAlways|snap">

                    <TextView
                        android:id="@+id/tvservices"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="4dp"
                        android:layout_marginTop="4dp"
                        android:text="Services"
                        android:textAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle"
                        android:textColor="@android:color/white"
                        android:textSize="20dp"
                        android:textStyle="bold" />

                </LinearLayout>

            </android.support.design.widget.CollapsingToolbarLayout>
        </android.support.design.widget.AppBarLayout>


        <android.support.v4.widget.NestedScrollView 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="wrap_content"
            android:padding="@dimen/activity_horizontal_margin"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">

            <LinearLayout
                android:id="@+id/frstll"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_below="@+id/materialup.appbar"
                android:orientation="vertical">

                <ExpandableListView
                    android:id="@+id/expandableListView"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="#ffffff"
                    android:childDivider="#f4f4f4"
                    android:dividerHeight="1dp"
                    android:groupIndicator="@null" />

            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="end"
                android:orientation="horizontal">

                <android.support.design.widget.FloatingActionButton
                    android:id="@+id/fab"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom|right|end"
                    android:layout_margin="@dimen/activity_horizontal_margin"
                    android:clickable="true"
                    android:elevation="8dp"
                    android:src="@android:drawable/ic_menu_help"
                    app:backgroundTint="#1abc9c" />

            </LinearLayout>
        </android.support.v4.widget.NestedScrollView>
    </android.support.design.widget.CoordinatorLayout>
</RelativeLayout>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM