public abstract class LinearSmoothScroller 
  extends RecyclerView.SmoothScroller 
| java.lang.Object | ||
| android.support.v7.widget.RecyclerView.SmoothScroller | ||
| android.support.v7.widget.LinearSmoothScroller | ||
RecyclerView.SmoothScroller实现,它使用 LinearInterpolator直到目标位置成为RecyclerView的子项,然后使用 DecelerateInterpolator缓慢接近目标位置。
常量(Constants) |  
      |
|---|---|
int |  
        SNAP_TO_ANY 决定是否应该从开始或结束时扣除儿童,具体取决于当前与父母相关的位置。  |  
      
int |  
        SNAP_TO_END 将子视图的右侧或底部与父视图的右侧或底部对齐  |  
      
int |  
        SNAP_TO_START 将子视图的左侧或顶部与父视图的左侧或顶部对齐  |  
      
Fields |  
      |
|---|---|
 protected final DecelerateInterpolator |  
        mDecelerateInterpolator   |  
      
 protected int |  
        mInterimTargetDx   |  
      
 protected int |  
        mInterimTargetDy   |  
      
 protected final LinearInterpolator |  
        mLinearInterpolator   |  
      
 protected PointF |  
        mTargetVector   |  
      
Public constructors |  
      |
|---|---|
  LinearSmoothScroller(Context context)   |  
      |
公共方法(Public methods) |  
      |
|---|---|
 int  |  
         calculateDtToFit(int viewStart, int viewEnd, int boxStart, int boxEnd, int snapPreference)  Helper方法   |  
      
 int  |  
         calculateDxToMakeVisible(View view, int snapPreference)  计算使RecyclerView内的给定视图完全可见的必要水平滚动量。  |  
      
 int  |  
         calculateDyToMakeVisible(View view, int snapPreference)  计算使RecyclerView内的给定视图完全可见的垂直滚动量。  |  
      
 abstract PointF  |  
         computeScrollVectorForPosition(int targetPosition)   |  
      
Protected methods |  
      |
|---|---|
 float  |  
         calculateSpeedPerPixel(DisplayMetrics displayMetrics)  计算滚动速度。  |  
      
 int  |  
         calculateTimeForDeceleration(int dx)  计算减速时间,以便从LinearInterpolator到DecelerateInterpolator的转换看起来平滑。  |  
      
 int  |  
         calculateTimeForScrolling(int dx)  计算滚动给定距离所需的时间(以像素为单位)  |  
      
 int  |  
         getHorizontalSnapPreference()  当向子视图滚动时,此方法定义我们是应该将子对象的左边还是右边与父级RecyclerView对齐。  |  
      
 int  |  
         getVerticalSnapPreference()  当滚动到一个子视图时,这个方法定义我们是否应该将子对象的顶部或底部边缘与父级RecyclerView对齐。  |  
      
 void  |  
         onSeekTargetStep(int dx, int dy, RecyclerView.State state, RecyclerView.SmoothScroller.Action action)  RecyclerView会在每次滚动时调用此方法,直到它可以在布局中找到目标位置。  |  
      
 void  |  
         onStart()  当平滑滚动开始时调用。  |  
      
 void  |  
         onStop()  当平滑滚轮停止时调用。  |  
      
 void  |  
         onTargetFound(View targetView, RecyclerView.State state, RecyclerView.SmoothScroller.Action action)  目标位置布局时调用。  |  
      
 void  |  
         updateActionForInterimTarget(RecyclerView.SmoothScroller.Action action)  当目标滚动位置不是RecyclerView的子项时,此方法计算朝向该子项的方向矢量并触发平滑滚动。  |  
      
继承方法(Inherited methods) |  
      |
|---|---|
  android.support.v7.widget.RecyclerView.SmoothScroller  
         |  
      |
  java.lang.Object  
         |  
      |
int SNAP_TO_ANY
决定是否应该从开始或结束时扣除儿童,具体取决于当前与父母相关的位置。
例如,如果视图实际上位于RecyclerView左侧,则使用 SNAP_TO_ANY与使用 SNAP_TO_START
也可以看看:
常量值:0(0x00000000)
int SNAP_TO_END
将子视图的右侧或底部与父视图的右侧或底部对齐
也可以看看:
常数值:1(0x00000001)
int SNAP_TO_START
将子视图的左侧或顶部与父视图的左侧或顶部对齐
也可以看看:
常量值:-1(0xffffffff)
int mInterimTargetDx
int mInterimTargetDy
int calculateDtToFit (int viewStart, 
                int viewEnd, 
                int boxStart, 
                int boxEnd, 
                int snapPreference) 
     助手方法 calculateDxToMakeVisible(android.view.View, int)和 calculateDyToMakeVisible(android.view.View, int)
| 参数(Parameters) | |
|---|---|
viewStart |  
         int 
          |  
       
viewEnd |  
         int 
          |  
       
boxStart |  
         int 
          |  
       
boxEnd |  
         int 
          |  
       
snapPreference |  
         int 
          |  
       
| 返回(Returns) | |
|---|---|
int |  
        |
int calculateDxToMakeVisible (View view, int snapPreference)
计算使RecyclerView内的给定视图完全可见的必要水平滚动量。
| 参数(Parameters) | |
|---|---|
view |  
         View: The view which we want to make fully visible |  
       
snapPreference |  
         int: The edge which the view should snap to when entering the visible area. One of SNAP_TO_START, SNAP_TO_END or SNAP_TO_END |  
       
| 返回(Returns) | |
|---|---|
int |  
        The vertical scroll amount necessary to make the view visible with the given snap preference. | 
int calculateDyToMakeVisible (View view, int snapPreference)
计算使RecyclerView内的给定视图完全可见的垂直滚动量。
| 参数(Parameters) | |
|---|---|
view |  
         View: The view which we want to make fully visible |  
       
snapPreference |  
         int: The edge which the view should snap to when entering the visible area. One of SNAP_TO_START, SNAP_TO_END or SNAP_TO_ANY. |  
       
| 返回(Returns) | |
|---|---|
int |  
        The vertical scroll amount necessary to make the view visible with the given snap preference. | 
PointF computeScrollVectorForPosition (int targetPosition)
| 参数(Parameters) | |
|---|---|
targetPosition |  
         int 
          |  
       
| 返回(Returns) | |
|---|---|
PointF |  
        |
float calculateSpeedPerPixel (DisplayMetrics displayMetrics)
计算滚动速度。
| 参数(Parameters) | |
|---|---|
displayMetrics |  
         DisplayMetrics: DisplayMetrics to be used for real dimension calculations |  
       
| 返回(Returns) | |
|---|---|
float |  
        The time (in ms) it should take for each pixel. For instance, if returned value is 2 ms, it means scrolling 1000 pixels with LinearInterpolation should take 2 seconds. | 
int calculateTimeForDeceleration (int dx)
计算减速时间,以便从LinearInterpolator到DecelerateInterpolator的转换看起来平滑。
| 参数(Parameters) | |
|---|---|
dx |  
         int: Distance to scroll |  
       
| 返回(Returns) | |
|---|---|
int |  
        Time for DecelerateInterpolator to smoothly traverse the distance when transitioning from LinearInterpolation | 
int calculateTimeForScrolling (int dx)
计算滚动给定距离所需的时间(以像素为单位)
| 参数(Parameters) | |
|---|---|
dx |  
         int: Distance in pixels that we want to scroll |  
       
| 返回(Returns) | |
|---|---|
int |  
        Time in milliseconds | 
int getHorizontalSnapPreference ()
当向子视图滚动时,此方法定义我们是应该将子对象的左边还是右边与父级RecyclerView对齐。
| 返回(Returns) | |
|---|---|
int |  
        SNAP_TO_START, SNAP_TO_END or SNAP_TO_ANY; depending on the current target vector | 
也可以看看:
int getVerticalSnapPreference ()
当滚动到一个子视图时,这个方法定义我们是否应该将子对象的顶部或底部边缘与父级RecyclerView对齐。
| 返回(Returns) | |
|---|---|
int |  
        SNAP_TO_START, SNAP_TO_END or SNAP_TO_ANY; depending on the current target vector | 
也可以看看:
void onSeekTargetStep (int dx, 
                int dy, 
                RecyclerView.State state, 
                RecyclerView.SmoothScroller.Action action) 
      
     RecyclerView会在每次滚动时调用此方法,直到它可以在布局中找到目标位置。
SmoothScroller应该检查dx,dy,如果应该更改滚动,请更新提供的 RecyclerView.SmoothScroller.Action以定义下一个滚动。
| 参数(Parameters) | |
|---|---|
dx |  
         int: Last scroll amount horizontally |  
       
dy |  
         int: Last scroll amount verticaully |  
       
state |  
         RecyclerView.State: Transient state of RecyclerView |  
       
action |  
         RecyclerView.SmoothScroller.Action: If you want to trigger a new smooth scroll and cancel the previous one, update this object.  |  
       
void onStart ()
当平滑滚动开始时调用。 这可能是设置的好时机。
void onStop ()
当平滑滚轮停止时调用。 这是清理你的国家等的好地方。
void onTargetFound (View targetView, RecyclerView.State state, RecyclerView.SmoothScroller.Action action)
目标位置布局时调用。 这是SmoothScroller将接收的最后一次回调,它应该更新提供的RecyclerView.SmoothScroller.Action以定义滚动细节到目标视图。
| 参数(Parameters) | |
|---|---|
targetView |  
         View: The view element which render the target position. |  
       
state |  
         RecyclerView.State: Transient state of RecyclerView |  
       
action |  
         RecyclerView.SmoothScroller.Action: Action instance that you should update to define final scroll action towards the targetView  |  
       
void updateActionForInterimTarget (RecyclerView.SmoothScroller.Action action)
当目标滚动位置不是RecyclerView的子项时,此方法计算朝向该子项的方向矢量并触发平滑滚动。
| 参数(Parameters) | |
|---|---|
action |  
         RecyclerView.SmoothScroller.Action 
          |