3

Google PlayストアアプリのようなUIを作成したいと思います。Google Playストアアプリのような視差効果とスナップツールバー

  • DrawerLayout
  • パララックス効果アップユーザーがスクロール
  • トップ画像は、ステータスバーの後ろに
  • ときに入る
    ツールバーをスナップ
  • :それはそれは機能のこれらの種類を含んでいる、と言うことです

上記の機能を実現するためにレイアウトを作成しましたが、2つの点を除いて問題なく動作します。

  1. ツールバーは、それが
  2. をスクロールアップに入ったときにパララックス効果はここで

が動作していない私のレイアウトだスナップされていません。

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout 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/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

    <android.support.design.widget.CoordinatorLayout 
     android:id="@+id/coordinator_layout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true"> 

     <android.support.design.widget.AppBarLayout 
      android:id="@+id/app_bar_layout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@color/green_dark" 
      android:fitsSystemWindows="true"> 

      <android.support.design.widget.CollapsingToolbarLayout 
       android:id="@+id/collapsing_toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:fitsSystemWindows="true" 
       app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed" 
       app:contentScrim="@color/green_dark" 
       app:statusBarScrim="@color/green_dark" 
       app:titleEnabled="false"> 

       <ImageView 
        android:id="@+id/top_app_imageview" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:adjustViewBounds="true" 
        android:fitsSystemWindows="true" 
        android:scaleType="centerCrop" 
        app:layout_collapseMode="parallax" 
        app:layout_collapseParallaxMultiplier="0.7" /> 

       <android.support.v7.widget.Toolbar 
        android:id="@+id/toolbar" 
        android:layout_width="match_parent" 
        android:layout_height="?attr/actionBarSize" 
        app:layout_scrollFlags="scroll|enterAlways|snap" 
        app:layout_collapseMode="pin" 
        app:theme="@style/SearchToolbarStyle" /> 

      </android.support.design.widget.CollapsingToolbarLayout> 
     </android.support.design.widget.AppBarLayout> 

     <android.support.v7.widget.RecyclerView 
      android:id="@+id/recycler_view" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:paddingBottom="10dp" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 
    </android.support.design.widget.CoordinatorLayout> 


    <android.support.design.widget.NavigationView 
     android:id="@+id/navigation_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:elevation="6dp" 
     app:headerLayout="@layout/layout_drawer_header" 
     app:menu="@menu/drawer_menu" /> 

</android.support.v4.widget.DrawerLayout> 

は、ここに私のGradleは、次のようになります方法は次のとおりです。

{ 
... 
buildToolsVersion "25.0.0" 
... 
} 

dependencies { 
    .... 
    compile 'com.android.support:appcompat-v7:25.1.0' 
    compile 'com.android.support:recyclerview-v7:25.1.0' 
    compile 'com.android.support:support-v4:25.1.0' 
    compile 'com.android.support:design:25.1.0' 
    compile 'com.android.support:cardview-v7:25.1.0' 
    .... 
} 

任意のideなぜparrallax効果が働いていないとどのようにスナップツールバーを達成するために?

答えて

1
  1. なぜ視差理由を効果が働いていなかった私がImageView(id:top_app_imageview)の幅と高さをprogrammitcallyにsetLayoutParamsと設定していたということでした。それはどういうわけか、正しい視差効果を得るために中断されました。回避策は、プログラムでAppBarLayoutの幅と高さを設定し、Imageviewlayout_heightmatch_parentに変更することでした。
  2. 私はあなたの答えをありがとうCollapsingToolbarLayout"scroll|enterAlways|enterAlwaysCollapsed|snap"から
+0

** 1。**質問する前にこれらの情報を質問に入れてください...私の答えは正しいです、あなたがここで見ることができるように:http://stackoverflow.com/a/35241363/4409113 ** 2. * *あなたは何が起こっているのかを見るために出力のビデオを作ることができますか? – Mohsen

0

これを試してください。

あなたToolbarにこの行を削除します。

app:layout_collapseMode="pin" 

そして、ちょうどあなたのToolbarでこれを使用します。

app:layout_scrollFlags="scroll|enterAlways" 

だから、我々が持っている:

<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    app:layout_scrollFlags="scroll|enterAlways" 
    app:theme="@style/SearchToolbarStyle" /> 
+0

layout_scrollFlagsを変更することにより、スナップツールバーを作りました。しかし、それは動作しませんでした!同じ結果です。 – Umarov

+0

@Umarovあなたはこのビデオ出力のようなものを手に入れようとしていますか?右 ? https://sendvid.com/ugjspx8rから取得:http://stackoverflow.com/questions/32569824/collapsing-toolbar-layout-like-google-play-store私はテストを行ったので、それは働いた。どの部分がうまくいかなかったのかを明らかにしてください。出力からビデオを撮ることによって、それは素晴らしいことでしょう。 – Mohsen

+0

ありがとうございました。私の答えを見てください。 – Umarov

関連する問題