折叠工具栏不会在依从布局中滚动时折叠

问题描述:

我在折叠布局中使用了折叠工具栏,但折叠条仍然不会折叠,并且仍然处于滚动状态。折叠工具栏不会在依从布局中滚动时折叠

这是activity_demo.xml -

<?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.support.design.widget.AppBarLayout 
      android:id="@+id/appbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
      android:fitsSystemWindows="true"> 

<!-- Fit the system windows for your CollapsingToolbarLayout 
      also set your height to wrap_content and give image a height--> 

<android.support.design.widget.CollapsingToolbarLayout 
       android:id="@+id/collapsing_toolbar" 
       android:fitsSystemWindows="true" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       app:contentScrim="?attr/colorPrimary" 
       app:expandedTitleMarginStart="4dp" 
       app:expandedTitleMarginEnd="64dp"> 

       <ImageView 
        android:id="@+id/backdrop" 
        android:layout_width="match_parent" 
        android:layout_height="244dp" 
        android:scaleType="centerCrop" 
        android:fitsSystemWindows="true" 
        android:src="@drawable/cheese" 
        app:layout_collapseMode="parallax"/> 
       <!-- Tell your toolbar to scroll|enterAlways --> 
       <android.support.v7.widget.Toolbar 
        android:id="@+id/toolbar" 
        android:layout_width="match_parent" 
        android:layout_height="?attr/actionBarSize" 
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
        app:layout_scrollFlags="scroll|enterAlways"/> 
       <!-- add layout_gravity="bottom" --> 
       <android.support.design.widget.TabLayout 
        android:id="@+id/tabs" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        app:tabSelectedTextColor="?android:attr/textColorPrimaryInverse" 
        app:tabIndicatorColor="?android:attr/textColorPrimaryInverse" 
        app:tabIndicatorHeight="4dp" 
        android:layout_gravity="bottom"/> 
      </android.support.design.widget.CollapsingToolbarLayout> 
     </android.support.design.widget.AppBarLayout> 

     <android.support.v4.widget.NestedScrollView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="vertical" 
       android:paddingTop="24dp"> 

       <android.support.v7.widget.CardView 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_margin="16dp"> 

        <LinearLayout 
         style="@style/Widget.CardContent" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content"> 

         <TextView 
          android:layout_width="match_parent" 
          android:layout_height="wrap_content" 
          android:text="Info" 
          android:textAppearance="@style/TextAppearance.AppCompat.Title" /> 

         <TextView 
          android:layout_width="match_parent" 
          android:layout_height="wrap_content" 
          android:text="@string/cheese_ipsum" /> 

        </LinearLayout> 

       </android.support.v7.widget.CardView> 

       <android.support.v7.widget.CardView 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginBottom="@dimen/card_margin" 
        android:layout_marginLeft="@dimen/card_margin" 
        android:layout_marginRight="@dimen/card_margin"> 

        <LinearLayout 
         style="@style/Widget.CardContent" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content"> 

         <TextView 
          android:layout_width="match_parent" 
          android:layout_height="wrap_content" 
          android:text="Friends" 
          android:textAppearance="@style/TextAppearance.AppCompat.Title" /> 

         <TextView 
          android:layout_width="match_parent" 
          android:layout_height="wrap_content" 
          android:text="@string/cheese_ipsum" /> 

        </LinearLayout> 

       </android.support.v7.widget.CardView> 

       <android.support.v7.widget.CardView 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginBottom="@dimen/card_margin" 
        android:layout_marginLeft="@dimen/card_margin" 
        android:layout_marginRight="@dimen/card_margin"> 

        <LinearLayout 
         style="@style/Widget.CardContent" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content"> 

         <TextView 
          android:layout_width="match_parent" 
          android:layout_height="wrap_content" 
          android:text="Related" 
          android:textAppearance="@style/TextAppearance.AppCompat.Title" /> 

         <TextView 
          android:layout_width="match_parent" 
          android:layout_height="wrap_content" 
          android:text="@string/cheese_ipsum" /> 

        </LinearLayout> 

       </android.support.v7.widget.CardView> 

      </LinearLayout> 

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

这是DemoActivity.java -

package com.example.priyanshu.iitmandi; 

    import android.os.Bundle; 
    import android.support.design.widget.CollapsingToolbarLayout; 
    import android.support.v7.app.AppCompatActivity; 
    import android.support.v7.widget.Toolbar; 
    import android.widget.ImageView; 

public class DemoActivity extends AppCompatActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_demo); 

     final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

     CollapsingToolbarLayout collapsingToolbar = 
       (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar); 
     collapsingToolbar.setTitle("Faculty"); 

     loadBackdrop(); 
    } 

    private void loadBackdrop() { 
     final ImageView imageView = (ImageView) findViewById(R.id.backdrop); 

     imageView.setImageResource(R.drawable.cheese); 
    } 

} 

如果需要活动的截图然后让我知道

+0

这里比较:http://guides.codepath.com/android/handling-scrolls-with-coordinatorlayout#creating-collapsing-effects –

试试这个建议:

1.您没有将app:layout_scrollFlags添加到CollapsingToolbarLayout

app:layout_scrollFlags="scroll|enterAlways|snap" //add this 
app:contentScrim="?attr/colorPrimary" 
app:expandedTitleMarginStart="48dp" 
app:expandedTitleMarginEnd="64dp" 

2.Next东西把<android.support.design.widget.TabLayoutCollapsingToolbarLayout,并将其添加在AppBarLayout

3.In您NestedScrollview添加android:fillViewport="true"有时它给所需的输出。

<android.support.v4.widget.NestedScrollView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fillViewport="true" 

编辑

你也可以尝试CollapsingToolbarLayout

app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed" 

Toolbar

app:layout_collapseMode="pin" 
app:layout_scrollFlags="scroll|exitUntilCollapsed" 

它会在滚动过程中针工具栏..

+0

谢谢你!它的工作,但一个小问题是,在滚动折叠工具栏完全消失(这是图像和标题消失),而不是我想它缩小到小尺寸,并留在那里(这只是标题应显示) – Somebody

+0

尝试使用:'app:layout_scrollFlags =“scroll | enterAlways | enterAlwaysCollapsed”'以了解更多有关标志的信息:http://guides.codepath.com/android/handling-scrolls-with-coordinatorlayout#creating-collapsing-effects – rafsanahmad007

+0

错误:(22,37)不允许使用字符串类型('layout_scrollFlags'值'scroll | enterAlways | enterAlwaysCollap sed')。添加刚刚建议的滚动标志时会显示此错误 – Somebody