내 응용 프로그램에 애니메이션을 넣으려고합니다. 애니메이션 아이디어를 얻으려면 첨부 된 사진을 찾으십시오.사용자가 스크롤 할 때 툴바의보기에 어떻게 애니메이션을 적용합니까?
나는 CoordinatorLayout을 사용하고 있습니다. 내 검색 레이아웃과 툴바는 AppBarLayout/CollapsingToolbarLayout 내부에서 호스팅됩니다. 그 아래 NestedScrollView 호스팅 조각입니다.
사용자가 스크롤 플래그를 사용하여 스크롤 할 때 검색 레이아웃을 숨길 수 있습니다. 카트 아이콘을 왼쪽으로 이동하고 검색 아이콘을 0부터 1까지 확장하기 시작하는 CoordinatorLayout.Behavior를 구현하려고합니다. 사용자가 스크롤하면 검색 레이아웃이 숨기기 시작합니다. 검색 레이아웃이 완전히 숨겨지면 두 번째 화면처럼 도구 모음을 표시하려고합니다. 사용자가 아래로 스크롤하면 카트 레이아웃이 오른쪽으로 천천히 이동하고 검색 아이콘이 축소되어 검색 레이아웃이 나타나기 시작하면서 첫 번째 화면과 같이 원래 상태로 돌아갑니다.
처음에는 도구 모음에서 검색 아이콘을 숨김으로 설정했으며 장바구니 아이콘 & 검색 아이콘은 선형 레이아웃 안에 있습니다. layout_primary_toolbar.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은 내가 지난 7 시간 동안이 붙어 있어요
<?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>
입니다 activity_home_page.xml
내 XML을 찾아주세요. 나는 안드로이드 애니메이션을 처음 접했습니다.
처음에는 프로그래밍 방식으로 rl_search (검색 상자)를 숨 깁니다. 도구 모음 아래에서 ll_search_layout이 위로 스크롤 될 때 rl_cart가 왼쪽으로 이동해야합니다 (원래 위치는 rl_search가 숨겨져 있지 않음). rl_search는 0에서 1로 확장되어야합니다.
LinearInterpolator와 함께 ObjectAnimator를 사용했습니다. 그러나 전혀 작동하지 않습니다.
제안 사항 어떻게해야합니까?
P. - 만약 당신이 참조를 위해 필요하다면 코드를 게시 할 수 있습니다.
감사
어떻게하면 애니메이션을 할 수 있습니까? 모든 것이 잘 작동하는 애니메이션 휴식을 원합니다. –
다른 솔루션을 링크에서 확인할 수 있습니다. 너를 도울거야. – savepopulation
고마워요. 마침내 나는 주말에 그것을했다. Animator 클래스는 사용하지 않지만 작동합니다. GIF로 답을 올렸습니다. –