2015-12-06 3 views
0

Я создал recyclerview и компоновку заголовка, когда я просматриваю recyclerview, макет заголовка должен исчезнуть в соответствии со смещением прокрутки recyclerview.Как обновить макет после перевода набора Y

Мой файл разметки XML является:

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout 
     xmlns:tools="http://schemas.android.com/tools" 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     tools:showIn="@layout/activity_main" 
     tools:context=".MainActivity" 
     android:id="@+id/main_container"> 

    <TextView android:layout_width="match_parent" 
       android:layout_height="50dp" 
       android:id="@+id/header" 
       android:text="Mao Minh Tri"/> 

    <android.support.v7.widget.RecyclerView 
      android:id="@+id/my_recycler_view" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/header"/> 

</RelativeLayout> 

и реализован код при прокрутке recyclerview

RecyclerView.OnScrollListener scrollListener = new RecyclerView.OnScrollListener() { 
     @Override 
     public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
      if (originalHeight == 0) { 
       originalHeight = myrecyclerView.getHeight(); 
      } 

      ViewGroup.LayoutParams lp = myrecyclerView.getLayoutParams(); 

      calculateLocationAndProductStickerOffset(); 
      textview.setTranslationY(-offset); 
      mainView.setTranslationY(-offset); 

      if ((offset < textview.getHeight() && dy > 0) || (offset > 0 && dy < 0)) { 
       offset += dy; 
      } 


      System.out.println("original height --> " + originalHeight); 
     } 

     @Override 
     public void onScrollStateChanged(RecyclerView recyclerView, int newState) { 

     } 
    }; 

    myrecyclerView.addOnScrollListener(scrollListener); 
} 

private void calculateLocationAndProductStickerOffset() { 
    if (offset > textview.getHeight()) { 
     offset = textview.getHeight(); 
    } else if (offset < 0) { 
     offset = 0; 
    } 
} 

И мой результат: before scrolling after scrolled

ответ

0

Here лучший способ использовать заголовок с recycleview без использования RecyclerView.OnScrollListener

Смежные вопросы