CoordinatorLayout + TabView + AnimateView(自上而下)
CoordinatorLayout + TabView + AnimateView(From Top)
Yesterday
我在玩 CoordinatorLayout
和 TabView
1) 我的目标是什么?
CoordinatorLayout
与 TabView
- 当我
scroll up
当时One View
如.GIF
move down
所示。
- 和
Stick
在 TabView
的顶部(AppBar 内)。
2) 我到达哪里了?
CoordinatorLayout
和 TabView
漂亮的滚动。
- 带 Appbar 的 TabView 在滚动 RecyclerView 后停止在顶部滚动。
3) 我卡在哪里了?
- 当我
scroll Up
One View
向下滚动但 TabView Stick At Top
不像 1st gif
.
4) 代码片段
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) 值。
Yesterday
我在玩 CoordinatorLayout
和 TabView
1) 我的目标是什么?
CoordinatorLayout
与TabView
- 当我
scroll up
当时One View
如.GIF
move down
所示。 - 和
Stick
在TabView
的顶部(AppBar 内)。
2) 我到达哪里了?
CoordinatorLayout
和TabView
漂亮的滚动。- 带 Appbar 的 TabView 在滚动 RecyclerView 后停止在顶部滚动。
3) 我卡在哪里了?
- 当我
scroll Up
One View
向下滚动但 TabView StickAt Top
不像1st gif
.
4) 代码片段
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) 值。