我想在我的应用程序中添加一些动画。请找到附带的照片以获得动画创意。
我使用过CoordinatorLayout。我的搜索布局和工具栏托管在AppBarLayout / CollapsingToolbarLayout中。下面是我的NestedScrollView托管片段。
当用户使用滚动标记滚动时,我可以隐藏搜索布局。我正在尝试实现一个CoordinatorLayout.Behavior,它将开始向左移动购物车图标并开始搜索图标从0到1缩放;一旦用户滚动并且搜索布局开始隐藏。当搜索布局完全隐藏时,我想在第二个屏幕中显示工具栏。当用户向下滚动并且通过向右移动推车并缩小搜索图标开始显示搜索布局时,它将返回原始状态,如第一个屏幕所示。
最初,我已将工具栏上的搜索图标设为隐藏和购物车图标&搜索图标位于线性布局内。
请找到我的xml activity_home_page.xml
<?xml version="1.0" encoding="utf-8"?>
<com.example.ui.customviews.CustomDrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/ab_app_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="131dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<LinearLayout
android:id="@+id/ll_search_layout"
android:layout_width="match_parent"
android:layout_height="75dp"
android:layout_gravity="bottom"
android:orientation="vertical"
android:visibility="visible"
app:layout_scrollFlags="scroll|snap">
<LinearLayout
android:id="@+id/ll_search_box"
android:layout_width="match_parent"
android:layout_height="51dp"
android:layout_marginBottom="@dimen/dimen_12_dp"
android:layout_marginLeft="@dimen/dimen_8_dp"
android:layout_marginRight="@dimen/dimen_8_dp"
android:layout_marginTop="@dimen/dimen_12_dp"
android:background="@drawable/round_corner_layout_white"
android:elevation="@dimen/dimen_5_dp"
android:focusableInTouchMode="true"
android:orientation="horizontal">
<EditText
android:id="@+id/et_search"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/dimen_15_dp"
android:layout_weight="80"
android:background="@android:color/transparent"
android:hint="Search for Products"
android:padding="@dimen/dimen_5_dp"
android:textColor="@color/black"
android:textColorHint="@color/hint_text_color"
android:textSize="@dimen/dimen_text_16_sp" />
<ImageView
android:id="@+id/iv_search_icon"
android:layout_width="@dimen/dimen_22_dp"
android:layout_height="@dimen/dimen_24_dp"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/dimen_17_dp"
android:layout_marginRight="@dimen/dimen_20_dp"
android:src="@drawable/ic_search_grey" />
</LinearLayout>
</LinearLayout>
<include
layout="@layout/layout_primary_toolbar"
android:layout_width="match_parent"
android:layout_height="@dimen/toolbar_primary_height"
android:layout_gravity="top"
app:layout_collapseMode="pin"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@color/askme_blue"
app:layout_behavior="com.GetIt.animation.SearchLayoutBehavior"/>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
<fragment
android:id="@+id/navigation_drawer"
android:name="com.example.ui.fragment.SideMenuFragment"
android:layout_width="@dimen/navigation_drawer_width"
android:layout_height="match_parent"
android:layout_gravity="start" />
</com.example.ui.customviews.CustomDrawerLayout>
我的xml for layout_primary_toolbar.xml是
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="@dimen/toolbar_primary_height"
android:background="@color/askme_blue"
app:contentInsetEnd="0dp"
app:contentInsetStart="0dp"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<LinearLayout
android:id="@+id/layout_toolbar"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/iv_drawer_menu"
android:layout_width="@dimen/dimen_22_dp"
android:layout_height="@dimen/dimen_22_dp"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/dimen_16_dp"
android:layout_marginRight="@dimen/dimen_15_dp"
android:src="@drawable/ic_drawer_menu" />
<ImageView
android:id="@+id/iv_back_btn"
android:layout_width="@dimen/dimen_22_dp"
android:layout_height="@dimen/dimen_20_dp"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/dimen_16_dp"
android:layout_marginRight="@dimen/dimen_15_dp"
android:src="@drawable/ic_back_button"
android:visibility="gone"/>
<LinearLayout
android:id="@+id/ll_location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center">
<com.GetIt.ui.customviews.TextViewRRegular
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Delhi"
android:textColor="@color/white"
android:textSize="20sp"
android:visibility="visible" />
<ImageView
android:id="@+id/toolbar_location_change"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="2dp"
android:layout_marginTop="2dp"
android:src="@drawable/ic_edit_location"
android:visibility="gone"/>
</LinearLayout>
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="right"
android:gravity="right"
android:layout_marginRight="@dimen/dimen_16_dp">
<RelativeLayout
android:id="@+id/rl_cart_count"
android:layout_width="@dimen/dimen_40_dp"
android:layout_height="@dimen/dimen_40_dp"
android:layout_centerVertical="true">
<ImageView
android:layout_width="@dimen/dimen_25_dp"
android:layout_height="@dimen/dimen_24_dp"
android:layout_centerInParent="true"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:scaleType="center"
android:src="@drawable/ic_cart" />
<TextView
android:id="@+id/tv_cart_count"
android:layout_width="@dimen/dimen_17_dp"
android:layout_height="@dimen/dimen_17_dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="@dimen/dimen_3_dp"
android:layout_marginTop="@dimen/dimen_3_dp"
android:background="@drawable/cart_count_background_circle"
android:elevation="@dimen/dimen_5_dp"
android:gravity="center"
android:textColor="@color/white"
android:textSize="@dimen/dimen_text_10_sp"
android:textStyle="bold"
android:visibility="visible" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_search"
android:layout_width="@dimen/dimen_40_dp"
android:layout_height="@dimen/dimen_40_dp"
android:layout_centerVertical="true"
android:layout_marginLeft="14dp"
android:layout_toRightOf="@+id/rl_cart_count">
<ImageView
android:id="@+id/iv_search"
android:layout_width="@dimen/dimen_24_dp"
android:layout_height="@dimen/dimen_24_dp"
android:layout_centerInParent="true"
android:src="@drawable/ic_search" />
</RelativeLayout>
</RelativeLayout>
</android.support.v7.widget.Toolbar>
过去7个小时我一直坚持这个。我是android动画的新手。
最初我是以编程方式隐藏rl_search(搜索框)。我希望当ll_search_layout向上滚动(在工具栏下方)时,rl_cart应该向左移动(这是其原始位置rl_search未被隐藏)并且rl_search应该从0扩展到1.
我已经将ObjectAnimator与LinearInterpolator一起使用,但它根本不起作用。
有任何建议如何实现这一目标?
P.S。 - 如果您需要参考代码,我可以发布代码。
由于
答案 0 :(得分:16)
尝试了2天以上,最后我能够做动画。如果他们也想做那样的话,我会把这个答案发给别人。
我没有使用android的动画实用程序,而是使用hack来增加和减少填充以及缩放搜索图标。
这是我的行为类
public class SearchLayoutBehavior extends CoordinatorLayout.Behavior<ImageView> {
Context mContext;
private static final int DIRECTION_UP = 1;
private static final int DIRECTION_DOWN = -1;
private static final int CART_PADDING_LOWER_LIMIT = 0;
private static int CART_PADDING_UPPER_LIMIT;
private static final float SEARCH_SCALING_LOWER_LIMIT = 0.0f;
private static final float SEARCH_SCALING_UPPER_LIMIT = 1.0f;
private float CART_PADDING_MULTIPLICATION_FACTOR;
private float SEARCH_SCALE_MULTIPLICATION_FACTOR;
RelativeLayout mRlSearch, mRlParentCart;
Toolbar mToolbar;
LinearLayout mLlSearchLayout;
boolean mIsSetupDone = false;
int mScrollingDirection, mPrevDiff1, mPrevDiff2;
public SearchLayoutBehavior() {
super();
}
public SearchLayoutBehavior(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
}
@Override
public boolean layoutDependsOn(CoordinatorLayout parent, ImageView child, View dependency) {
return (dependency.getId() == R.id.ab_app_bar);
}
@Override
public boolean onDependentViewChanged(CoordinatorLayout parent, ImageView child, View dependency) {
mRlParentCart = (RelativeLayout) dependency.findViewById(R.id.rl_parent_cart_count);
mRlSearch = (RelativeLayout) dependency.findViewById(R.id.rl_search);
mToolbar = (Toolbar) dependency.findViewById(R.id.toolbar);
mLlSearchLayout = (LinearLayout) dependency.findViewById(R.id.ll_search_layout);
int searchLayoutBottom = mLlSearchLayout.getBottom();
int searchLayoutTop = mLlSearchLayout.getTop();
int toolbarBottom = mToolbar.getBottom();
int diff1 = searchLayoutBottom - toolbarBottom;
int diff2 = searchLayoutTop - toolbarBottom;
if (!mIsSetupDone) {
CART_PADDING_UPPER_LIMIT = mContext.getResources().getDimensionPixelSize(R.dimen.cart_animation_move_left);
CART_PADDING_MULTIPLICATION_FACTOR = (float) CART_PADDING_UPPER_LIMIT / diff1;
SEARCH_SCALE_MULTIPLICATION_FACTOR = (float) 1 / diff1;
mPrevDiff1 = diff1;
mPrevDiff2 = -diff1;
mIsSetupDone = true;
}
if (mScrollingDirection == DIRECTION_UP && mPrevDiff1 >= diff1) {
moveCart(mRlParentCart, mPrevDiff1 - diff1, true);
mPrevDiff1 = diff1;
} else if (mScrollingDirection == DIRECTION_DOWN && mPrevDiff2 <= diff2) {
moveCart(mRlParentCart, diff2 - mPrevDiff2, false);
mPrevDiff2 = diff2;
}
if (diff2 == 0) {
mPrevDiff1 = diff1;
mPrevDiff2 = -diff1;
}
return true;
}
private void moveCart(final View view, float by, boolean doMoveLeft) {
int paddingRight = view.getPaddingRight();
float scaleX = mRlSearch.getScaleX();
float scaleY = mRlSearch.getScaleY();
if (doMoveLeft) {
paddingRight += (int) (by * CART_PADDING_MULTIPLICATION_FACTOR);
if (paddingRight >= CART_PADDING_UPPER_LIMIT) {
view.setPadding(0, 0, CART_PADDING_UPPER_LIMIT, 0);
} else {
view.setPadding(0, 0, paddingRight, 0);
}
scaleX += by * SEARCH_SCALE_MULTIPLICATION_FACTOR;
scaleY += by * SEARCH_SCALE_MULTIPLICATION_FACTOR;
if (Float.compare(scaleX, SEARCH_SCALING_UPPER_LIMIT) >= 0) {
mRlSearch.setScaleX(SEARCH_SCALING_UPPER_LIMIT);
} else {
mRlSearch.setScaleX(scaleX);
}
if (Float.compare(scaleY, SEARCH_SCALING_UPPER_LIMIT) >= 0) {
mRlSearch.setScaleY(SEARCH_SCALING_UPPER_LIMIT);
} else {
mRlSearch.setScaleY(scaleY);
}
} else {
paddingRight -= (int) (by * CART_PADDING_MULTIPLICATION_FACTOR);
if (paddingRight <= CART_PADDING_LOWER_LIMIT) {
view.setPadding(0, 0, CART_PADDING_LOWER_LIMIT, 0);
} else {
view.setPadding(0, 0, paddingRight, 0);
}
scaleX -= by * SEARCH_SCALE_MULTIPLICATION_FACTOR;
scaleY -= by * SEARCH_SCALE_MULTIPLICATION_FACTOR;
if (Float.compare(scaleX, SEARCH_SCALING_LOWER_LIMIT) == -1) {
mRlSearch.setScaleX(SEARCH_SCALING_LOWER_LIMIT);
} else {
mRlSearch.setScaleX(scaleX);
}
if (Float.compare(scaleY, SEARCH_SCALING_LOWER_LIMIT) == -1) {
mRlSearch.setScaleY(SEARCH_SCALING_LOWER_LIMIT);
} else {
mRlSearch.setScaleY(scaleY);
}
}
}
@Override
public void onNestedPreScroll(CoordinatorLayout coordinatorLayout, ImageView child, View target, int dx, int dy, int[] consumed) {
//Determine direction changes here
if (dy > 0 && mScrollingDirection != DIRECTION_UP) {
mScrollingDirection = DIRECTION_UP;
} else if (dy < 0 && mScrollingDirection != DIRECTION_DOWN) {
mScrollingDirection = DIRECTION_DOWN;
}
}
@Override
public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout, ImageView child, View directTargetChild, View target, int nestedScrollAxes) {
return (nestedScrollAxes & ViewCompat.SCROLL_AXIS_VERTICAL) != 0;
}
}
这是我使用协调器布局的xml。当搜索布局向上移动时,购物车向左移动,搜索图标向上移动。
<com.example.ui.customviews.CustomDrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/ab_app_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="131dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<LinearLayout
android:id="@+id/ll_search_layout"
android:layout_width="match_parent"
android:layout_height="75dp"
android:layout_gravity="bottom"
android:orientation="vertical"
android:visibility="visible"
android:background="@drawable/search_layout_twin_background"
app:layout_scrollFlags="scroll|snap">
<LinearLayout
android:id="@+id/ll_search_box"
android:layout_width="match_parent"
android:layout_height="51dp"
android:layout_marginBottom="@dimen/dimen_12_dp"
android:layout_marginLeft="@dimen/dimen_8_dp"
android:layout_marginRight="@dimen/dimen_8_dp"
android:layout_marginTop="@dimen/dimen_12_dp"
android:background="@drawable/round_corner_layout_white"
android:elevation="@dimen/dimen_5_dp"
android:focusableInTouchMode="true"
android:orientation="horizontal">
<EditText
android:id="@+id/et_search"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/dimen_15_dp"
android:layout_weight="80"
android:background="@android:color/transparent"
android:hint="Search for Products"
android:padding="@dimen/dimen_5_dp"
android:textColor="@color/black"
android:textColorHint="@color/hint_text_color"
android:textSize="@dimen/dimen_text_16_sp" />
<ImageView
android:id="@+id/iv_search_icon"
android:layout_width="@dimen/dimen_22_dp"
android:layout_height="@dimen/dimen_24_dp"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/dimen_17_dp"
android:layout_marginRight="@dimen/dimen_20_dp"
android:src="@drawable/ic_search_grey" />
</LinearLayout>
</LinearLayout>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="@dimen/toolbar_primary_height"
android:background="@color/askme_blue"
app:contentInsetEnd="0dp"
app:contentInsetStart="0dp"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<LinearLayout
android:id="@+id/layout_toolbar"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal">
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center">
<ImageView
android:id="@+id/iv_drawer_menu"
android:layout_width="@dimen/dimen_22_dp"
android:layout_height="@dimen/dimen_22_dp"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/dimen_16_dp"
android:layout_marginRight="@dimen/dimen_15_dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_drawer_menu" />
<ImageView
android:id="@+id/iv_back_btn"
android:layout_width="@dimen/dimen_22_dp"
android:layout_height="@dimen/dimen_20_dp"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/dimen_16_dp"
android:layout_marginRight="@dimen/dimen_15_dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_back_button"
android:visibility="gone" />
</FrameLayout>
<LinearLayout
android:id="@+id/ll_location"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:background="?attr/selectableItemBackgroundBorderless">
<TextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Delhi"
android:textColor="@color/white"
android:textSize="20sp"
android:visibility="visible" />
<ImageView
android:id="@+id/toolbar_location_change"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/dimen_3_dp"
android:layout_marginTop="@dimen/dimen_4_dp"
android:src="@drawable/ic_edit_location"
android:visibility="visible" />
</LinearLayout>
</LinearLayout>
<FrameLayout
android:layout_width="@dimen/dimen_100_dp"
android:layout_height="match_parent"
android:layout_gravity="right"
android:layout_marginRight="@dimen/dimen_16_dp"
android:gravity="right">
<RelativeLayout
android:id="@+id/rl_search"
android:layout_width="@dimen/dimen_40_dp"
android:layout_height="@dimen/dimen_40_dp"
android:layout_gravity="center_vertical|right"
android:layout_marginLeft="14dp"
android:background="?attr/selectableItemBackgroundBorderless">
<ImageView
android:id="@+id/iv_search"
android:layout_width="@dimen/dimen_24_dp"
android:layout_height="@dimen/dimen_24_dp"
android:layout_centerInParent="true"
android:src="@drawable/ic_search" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_parent_cart_count"
android:layout_width="94dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|right"
android:gravity="right"
android:paddingRight="54dp">
<RelativeLayout
android:id="@+id/rl_cart_count"
android:layout_width="@dimen/dimen_40_dp"
android:layout_height="@dimen/dimen_40_dp"
android:layout_gravity="center_vertical|right"
android:background="?attr/selectableItemBackgroundBorderless">
<ImageView
android:layout_width="@dimen/dimen_25_dp"
android:layout_height="@dimen/dimen_24_dp"
android:layout_centerInParent="true"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:scaleType="center"
android:src="@drawable/ic_cart" />
<TextView
android:id="@+id/tv_cart_count"
android:layout_width="@dimen/dimen_17_dp"
android:layout_height="@dimen/dimen_17_dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="@dimen/dimen_3_dp"
android:layout_marginTop="@dimen/dimen_3_dp"
android:background="@drawable/cart_count_background_circle"
android:elevation="@dimen/dimen_5_dp"
android:gravity="center"
android:textColor="@color/white"
android:textSize="@dimen/dimen_text_10_sp"
android:textStyle="bold"
android:visibility="visible" />
</RelativeLayout>
</RelativeLayout>
</FrameLayout>
</android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@color/askme_blue"
app:layout_behavior="com.GetIt.animation.SearchLayoutBehavior"/>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
<fragment
android:id="@+id/navigation_drawer"
android:name="com.example.ui.fragment.SideMenuFragment"
android:layout_width="@dimen/navigation_drawer_width"
android:layout_height="match_parent"
android:layout_gravity="start" />
</com.example.ui.customviews.CustomDrawerLayout>
这就是它的样子。
答案 1 :(得分:0)
使用CoordinatorLayout
和AppBarLayout
设计您的布局,并在其中添加Toolbar
。
<?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:id="@+id/coordinatorlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".dashboard.DashboardActivity">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbarlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<include
layout="@layout/toolbar_default"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_scrollFlags="scroll|enterAlways" />
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:tabGravity="fill"
app:tabMaxWidth="0dp"
app:tabIndicatorHeight="4dp"
app:tabMode="fixed"
app:tabIndicatorColor="@android:color/white"
android:background="@color/AppPrimary"/>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_dashboard" />
</android.support.design.widget.CoordinatorLayout>
在您的信息中心内容的布局中,为您的内容定义布局行为,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".dashboard.DashboardActivity"
tools:showIn="@layout/activity_dashboard">
<android.support.v4.view.ViewPager
android:id="@+id/viewpager_main"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
它有点陈旧,但你可以从下面的链接检查我的解决方案,而不需要coorinator布局: Android Toolbar + Tab Layout + Drawer, Hide toolbar when scrolling and take TabLayout to the top
祝你好运。