0

私はこの時点で、nestedscrollviewに取り組んでいます。それは単一の子RelativeLayoutを含んでいます。ここに擬似コードがあります。スティッキーTextViewを一番上にスクロールして表示領域の一番上にスクロール

<NestedScrollView> 
    <RelativeLayout> 
     <TextView /> //text A 
     <CalendaerView /> 
     <TextView /> //id = date_string //shows a date string 
     <RecyclerView /> //list of events 
    <RelativeLayout> 
</NestedScrollView> 

アイデアは、下方スクロールを行いながら、全体のビューは通常のスクロールべきであるが、日付列TextViewが可視領域の上部に達すると、それは、さらに下にスクロールするための上に滞在しなければなりません。それが上向きにスクロールされたときしかし、私は私がnestedscrollviewためにスクロールリスナーを試してみましたが、nestedscrollview外の別のtextviewを作成し、visibilityを変更CalendarView、テキストA.

見ることができるはずです。それはビューの可視性を変更する必要として

<RelativeLayout> 
    <TextView /> //to mimic date string 
    <NestedScrollView> 
    <RelativeLayout> 
     <TextView /> //text A 
     <CalendaerView /> 
     <TextView /> //id = date_string //shows a date string 
     <RecyclerView /> //list of events 
    <RelativeLayout> 
    </NestedScrollView> 
</RelativeLayout> 

ここでスクロールリスナーロジックは実際に

public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) { 
     if (isDone && scrollY < oldScrollY) { 
      //scroll up 
      int firstVisibleItem = ((LinearLayoutManager) mRecycler.getLayoutManager()) 
         .findFirstVisibleItemPosition(); 
       if(0 == firstVisibleItem) { 
        textA.setVisibility(View.VISIBLE); 
        calendarView.setVisibility(View.VISIBLE); 
        dateString.setVisibility(View.VISIBLE); 
        dateStringCopy.setVisibility(View.GONE); 
       } 
      } 

      if (scrollY > oldScrollY) { 
       //scroll down 
       int dateTop = dateString.getTop(); 
       //check if datestring reaches the top of screen 
       if(0 >= dateTop - scrollY) { 
        isDone = false; 
        textA.setVisibility(View.GONE); 
        calendarView.setVisibility(View.GONE); 
        dateString.setVisibility(View.GONE); 
        dateStringCopy.setVisibility(View.VISIBLE); 
        new Handler().postDelayed(new Runnable() { 
         @Override 
         public void run() { 
          isDone = true; 
         } 
        }, 50); 
       } 
      } 
     } 

だ、経験は非常に滑らかではありません。誰もこれを解決するためのよりよい方法を持っていますか?

+1

・ホープ[この](https://github.com/emilsjolander/StickyScrollViewItems)あなたが探しているものです。 – Sanoop

+0

私は第三者図書館なしで働いていることを理解しようとしていました。しかし、ええ、ここに行きます。私はそれを私のユースケースに変更します。ありがとう! – Renjith

答えて

関連する問題