public class ViewsCoordinator<ID>
extends java.lang.Object
RecyclerView and ViewPager to start transition between them.
But when ViewPager is scrolled we may also need to scroll RecyclerView to reveal
corresponding item's view.
Method request(Object) should be called when particular item needs to be synced.
This method will trigger methods ViewsCoordinator.OnRequestViewListener.onRequestView(Object) of
listeners set by setFromListener and
setToListener methods.
When views were requested this class starts waiting for 'from' and 'to' views to be provided
with setFromView(Object, View) (or setFromPos(Object, ViewPosition)) and
setToView(Object, AnimatorView) methods. When both views are ready method
ViewsCoordinator.OnViewsReadyListener.onViewsReady(Object) will be triggered.| Modifier and Type | Class and Description |
|---|---|
static interface |
ViewsCoordinator.OnRequestViewListener<ID> |
static interface |
ViewsCoordinator.OnViewsReadyListener<ID> |
| Constructor and Description |
|---|
ViewsCoordinator() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
cleanupRequest() |
ViewPosition |
getFromPos() |
android.view.View |
getFromView() |
ID |
getRequestedId() |
AnimatorView |
getToView() |
boolean |
isReady() |
protected void |
onFromViewChanged(android.view.View fromView,
ViewPosition fromPos) |
protected void |
onToViewChanged(AnimatorView old,
AnimatorView view) |
protected void |
onViewsReady(ID id)
Called when both 'from' and 'to' views are ready for given index.
|
void |
request(ID id) |
void |
setFromListener(ViewsCoordinator.OnRequestViewListener<ID> listener) |
void |
setFromNone(ID id)
Notifies that 'from' view is ready even if there is no such view.
|
void |
setFromPos(ID id,
ViewPosition fromPos) |
void |
setFromView(ID id,
android.view.View fromView) |
void |
setReadyListener(ViewsCoordinator.OnViewsReadyListener<ID> listener) |
void |
setToListener(ViewsCoordinator.OnRequestViewListener<ID> listener) |
void |
setToView(ID id,
AnimatorView toView) |
public void setFromListener(ViewsCoordinator.OnRequestViewListener<ID> listener)
public void setToListener(ViewsCoordinator.OnRequestViewListener<ID> listener)
public void setReadyListener(ViewsCoordinator.OnViewsReadyListener<ID> listener)
public void request(ID id)
public ID getRequestedId()
public android.view.View getFromView()
onViewsReady(Object) is called both this method and
getFromPos() may still return null, see setFromNone(Object).public ViewPosition getFromPos()
onViewsReady(Object) is called, both this method and
getFromView() may still return null, see setFromNone(Object).public AnimatorView getToView()
onViewsReady(Object) is called,
but before new request (request(Object)).public void setFromView(ID id, android.view.View fromView)
public void setFromPos(ID id, ViewPosition fromPos)
public void setFromNone(ID id)
protected void onFromViewChanged(android.view.View fromView,
ViewPosition fromPos)
public void setToView(ID id, AnimatorView toView)
protected void onToViewChanged(AnimatorView old, AnimatorView view)
public boolean isReady()
protected void onViewsReady(ID id)
getFromView(),
getFromPos(),
getToView()protected void cleanupRequest()