2017-02-22 75 views
1

後,我有一個RecyclerView即顯示圖片,並且已經把FloatingActionButton讓我的用戶返回到視圖的頂部像這樣:「返回頂部」按鈕只顯示滾動

// On FAB click, scroll back to the top of the layout 
private void handleUp() { 
    FloatingActionButton FAB = (FloatingActionButton) view.findViewById(R.id.upFAB); 
    FAB.setOnClickListener(view1 -> { 
     if (recyclerView != null) { 
      recyclerView.smoothScrollToPosition(0); 
     } 
    }); 
} 

有以下看法:

<android.support.design.widget.FloatingActionButton 
    app:fabSize="mini" 
    android:id="@+id/upFAB" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@mipmap/up_icon" 
    android:layout_gravity="bottom|center" 
    android:layout_marginBottom="60dp" /> 

看起來像this

正如你可以看到按鈕會顯示所有的時間,請問有什麼可以只顯示它當用戶滾動一定量的RecyclerView

回答

3

嘗試這種方式告訴我,我沒有嘗試

mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() { 

     @Override 
     public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
      super.onScrolled(recyclerView, dx, dy); 
      firstVisibleItem = mLayoutManager.findFirstVisibleItemPosition(); 

      if (firstVisibleItem > 1) { 
       //Show FAB 
      } 
      else{ 
       //Hide FAB 
      } 
     } 
    }); 
0

我只是做了它通過ListView

以下是使用ListView而不是RecycleView的示例。

試試這個,希望這將有助於。

listView.setOnScrollListener(new AbsListView.OnScrollListener() { 
     @Override 
     public void onScrollStateChanged(AbsListView view, int scrollState) { 

     } 

     @Override 
     public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 

      if(firstVisibleItem > 2) 
      { 
       upFAB.setVisibility(View.VISIBLE); 
      } 
      else 
      { 
       upFAB.setVisibility(View.GONE); 
      } 
     } 
    });