如何使用没有列表视图的选项卡实现折叠布局?

时间:2017-05-26 03:27:50

标签: android xml tabs toolbar collapse

我正在开发一个Android项目,我必须使用标签实现折叠工具栏。选项卡应包含正常的相对布局,其中包含4个textview。

enter image description here

我成功地能够实现折叠工具栏,但问题是,当我尝试向上滚动时,按住我已实现的标签折叠工具栏不起作用。在相同的选项卡上,如果我使用列表视图或网格布局,它滚动时工作正常。如果我尝试使用普通布局,如线性或相对布局,我无法滚动。有什么办法可以在没有列表或网格布局的情况下解决这个问题吗?

下面是我的xml代码:

<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        style="@style/MyStyle"
        android:layout_width="match_parent"
        app:tabIndicatorColor="#F21757"
        app:tabSelectedTextColor="#F21757"
        android:layout_height="?actionBarSize"
        app:tabTextColor="@android:color/white"
        app:layout_anchor="@+id/MyAppbar"
        app:layout_anchorGravity="bottom"
        android:layout_gravity="bottom"
        app:tabGravity="fill"
        app:tabMode="scrollable"
        android:background="#171C20" />


    <android.support.design.widget.AppBarLayout
    android:id="@+id/MyAppbar"
    android:layout_width="match_parent"
    android:layout_height="256dp"
    android:fitsSystemWindows="true"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
    >

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapse_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"
        app:contentScrim="#000000"

        android:fitsSystemWindows="true">

        <ImageView
            android:id="@+id/bgheader"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            android:src="@drawable/load"
            android:fitsSystemWindows="true"
            app:layout_collapseMode="parallax"
             />

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?actionBarSize"
            app:layout_collapseMode="pin"

            />


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

</android.support.design.widget.AppBarLayout>
    
    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:paddingBottom="20dp"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="?attr/actionBarSize"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

    </android.support.design.widget.CoordinatorLayout>

1 个答案:

答案 0 :(得分:2)

试试这个

第1步。 main_activity.xml

    select add_months(dat.date,-3) as dateFrom 
           dat.date as dateTo,
           (select count(distinct customerId)
            from Trx_Table
            where Trx_date between add_months(dat.date, -3) and sysdate
           ) as cnt 
    from dim_date dat
    where dat.date between date '2017-01-01' and sysdate;

步骤:2 创建片段活动

- FragmentActivity1

  • fragment1.xml

    dateFrom         dateTo       cnt
    20160930         20170101     10
    20161001         20170102     12
    20161002         20170103     14
    

  • FragmentActivity.java

    <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:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="com.ncrypted.demoapplications.MainActivity">
    
    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
    
        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsingToolBar_hotel_details"
            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|exitUntilCollapsed">
    
            <ImageView
                android:id="@+id/img_hotel_details"
                android:layout_width="match_parent"
                android:layout_height="300dp"
                android:contentDescription="@string/strong_image_of_andorid"
                android:fitsSystemWindows="true"
                android:scaleType="centerCrop"
                android:src="@mipmap/ic_launcher"
                app:layout_collapseMode="parallax" />
    
            <android.support.v7.widget.Toolbar
                android:id="@+id/toolBar_hotel_detail"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:theme="@style/ThemeOverlay.AppCompat.Light"
                app:layout_scrollFlags="scroll|enterAlways">
    
            </android.support.v7.widget.Toolbar>
    
    
        </android.support.design.widget.CollapsingToolbarLayout>
    
        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_collapseMode="pin"
            app:tabGravity="fill"
            app:tabMode="fixed" />
    </android.support.design.widget.AppBarLayout>
    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">
    
    </android.support.v4.view.ViewPager>
    

步骤:3 选择另外两个片段2,3并按上述方式编写代码

步骤:4 MainActivity.java

 <FrameLayout 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="com.ncrypted.demoapplications.FragmentActivity1">

 <!-- TODO: Update blank fragment layout -->
 <TextView
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:text="@string/hello_blank_fragment1" />