0

然後viewpager刷卡我有典型的CoordinatorLayout + AppBarLayout +工具欄+ TabLayout + Viewpager在工具欄上有與layout_scrollFlags一個非常惱人的問題「滾動| enterAlways |彈簧」設置RecyclerView滾動第一和CoordinatorLayout

這裏是也有其與NavigationView一個DrawerLayout的XML:

<?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" 
    android:id="@+id/activity_tabs_main_drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

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

     <android.support.design.widget.AppBarLayout 
      android:id="@+id/activity_tabs_main_appbar_layout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 

      <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/material_toolbar" 
       style="@style/AppCompatTheme.Toolbar" 
       app:layout_scrollFlags="scroll|enterAlways|snap" 
       app:popupTheme="@style/material_toolbar_popup"/> 

      <android.support.design.widget.TabLayout 
       android:id="@+id/activity_tabs_main_tab_layout" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       app:tabIndicatorColor="@color/neon_green"/> 
     </android.support.design.widget.AppBarLayout> 

     <android.support.v4.view.ViewPager 
      android:id="@+id/activity_tabs_main_viewpager" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      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:fitsSystemWindows="true" 
     app:menu="@menu/drawer_item"/> 

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

,我注意到的是,我可以刷卡在viewpager標籤對角線的方式(見圖片附後),而在谷歌Play上真正的兩個問題應用程序或WhatsApp或Cheesesquare由克里斯·貝恩如果我試圖做一個對角線滑動RecyclerView採取噸他首先手勢並向下滾動/向上滾動。

ViewPager Toolbar Bounce bugs

我覺得這ViewPager的行爲使工具欄創建一個小的反彈,其中導航抽屜圖標設置,旁邊的Toolbat標題。

所以,真正的問題是試圖防止這種反彈問題或錯誤,你也可以查看該視頻

YouTube鏈接:Video to show the bounce effect in the Toolbar

我已經通過去除DrawerLayout和NavigationView嘗試,但沒有任何效果,反彈問題仍在繼續。

提前致謝!

+0

如果你嘗試包內NestedScrollView的'ViewPager'並有' 'NestedScrollView'中的app:layout_behavior'。 – WindRider

+0

因爲克里斯貝恩在cheesesquare沒有這樣做,但我會嘗試。如果我將一個FrameLayout中的viewpager包裝在一起會怎樣? –

+0

+完全沒做任何事情的WindRider =( –

回答

0

我想我找到了解決這個問題的辦法。 RecyclerView.ViewHolder內部添加View.OnClickListener()後幾乎察覺不到,可以嗎?

這裏是內部RecyclerView:

private RecyclerOnItemClickListener itemClickListener; 

    class PostDtoViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { 

     private final PostView postView; 

     public PostDtoViewHolder(PostView postView) { 
      super(postView); 
      this.postView = postView; 
      this.postView.setOnClickListener(this); 
     } 

     public View getViewHolder() { 
      return this.postView; 
     } 

     public void bind(PostDto postDto) { 
      postView.loadContent(postDto); 
     } 

     @Override 
     public void onClick(View v) { 
      itemClickListener.onItemClickListener(getAdapterPosition()); 
     } 
    } 

哪裏RecyclerOnItemClickListener只是與方法的接口代碼:

public interface RecyclerOnItemClickListener { 

    void onItemClickListener(int itemPosition); 
} 
相關問題