Yesterday
Я играю с CoordinatorLayout
с TabView
1) Какова моя цель?
-
CoordinatorLayout
сTabView
- Когда я
scroll up
в это времяOne View
Как показано в.GIF
move down
. - и
Stick
в верхней частиTabView
(внутри AppBar).
2) Где я достиг?
-
CoordinatorLayout
сTabView
с красивой прокруткой. - TabView с прокруткой Appbar Stop сверху после этого прокрутки 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); } } });