昨天
我正在玩 CoordinatorLayout
和 TabView
1) 我的目标是什么?
CoordinatorLayout
和TabView
- 当我
向上滚动
时一个 View
如.GIF
所示向下移动
。 - 和
Stick
位于TabView
的顶部(在 AppBar 内)。
2) 我到达了哪里?
CoordinatorLayout
与TabView
的漂亮滚动。- 带有 Appbar 的 TabView 在滚动 RecyclerView 之后停止在顶部滚动。
3) 我卡在哪里了?
- 当我
向上滚动
一个 View
向下滚动但 TabView 停留在顶部
时,不像第一个 gif
。
4) 代码 fragment
XML文件
<android.support.design.widget.AppBarLayout android:id="@+id/main.appbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <!--- ADD TAB_LAYOUT HERE --> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/main.collapsing" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:expandedTitleMarginEnd="64dp" app:expandedTitleMarginStart="48dp" app:layout_scrollFlags="scroll"> <ImageView android:id="@+id/main.backdrop" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:scaleType="centerCrop" android:src="@drawable/abc" app:layout_collapseMode="none" /> <!-- ADD ANY THING THAT GETS SCROLLED ALL THE WAY UP WITH TOOLBAR --> </android.support.design.widget.CollapsingToolbarLayout> <!-- our tablayout to display tabs --> <android.support.design.widget.TabLayout android:id="@+id/tabLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" android:minHeight="?attr/actionBarSize" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" />
Java文件(上移代码)
AppBarLayout ab = (AppBarLayout) findViewById(R.id.main_appbar);ab.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() { @Override public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { int ScrollStart = (ab.getHeight() - tabLayout.getHeight() - llTop.getHeight() - llTop.getHeight()); int scrollStop = (ab.getHeight() - tabLayout.getHeight() - llTop.getHeight()); if ((-verticalOffset) > ScrollStart && (-verticalOffset) < scrollStop) { llTop.setVisibility(View.VISIBLE); llTop.setTranslationY(((-verticalOffset) - ScrollStart) - llTop.getHeight()); Log.e("point", "" + ((-verticalOffset) - ScrollStart)); } else if ((-verticalOffset) >= scrollStop) { llTop.setVisibility(View.VISIBLE); } else { llTop.setVisibility(View.INVISIBLE); } } });
最佳答案
有点棘手..
只需像这样尝试setMinimumHeight您的CollapsingToolbarLayout,并告诉我。
CollapsingToolbarLayout layoutCollapsing = (CollapsingToolbarLayout) rootView.findViewById(R.id.layoutCollapsing);
layoutCollapsing.setMinimumHeight(120);
此处根据您的需要计算您的最小高度并将其设置为 setMinimumHeight(120) 值。
关于android - CoordinatorLayout + TabView + AnimateView(自上而下),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43673097/