Created
June 25, 2020 00:23
-
-
Save ericntd/c2c731c17e2f6022e75939a6531ae2b2 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* @deprecated This method is deprecated because its meaning is ambiguous due to the async | |
* handling of adapter updates. You should use {@link #getLayoutPosition()} or | |
* {@link #getAdapterPosition()} depending on your use case. | |
* | |
* @see #getLayoutPosition() | |
* @see #getAdapterPosition() | |
*/ | |
@Deprecated | |
public final int getPosition() { | |
return mPreLayoutPosition == NO_POSITION ? mPosition : mPreLayoutPosition; | |
} | |
/** | |
* Returns the position of the ViewHolder in terms of the latest layout pass. | |
* <p> | |
* This position is mostly used by RecyclerView components to be consistent while | |
* RecyclerView lazily processes adapter updates. | |
* <p> | |
* For performance and animation reasons, RecyclerView batches all adapter updates until the | |
* next layout pass. This may cause mismatches between the Adapter position of the item and | |
* the position it had in the latest layout calculations. | |
* <p> | |
* LayoutManagers should always call this method while doing calculations based on item | |
* positions. All methods in {@link RecyclerView.LayoutManager}, {@link RecyclerView.State}, | |
* {@link RecyclerView.Recycler} that receive a position expect it to be the layout position | |
* of the item. | |
* <p> | |
* If LayoutManager needs to call an external method that requires the adapter position of | |
* the item, it can use {@link #getAdapterPosition()} or | |
* {@link RecyclerView.Recycler#convertPreLayoutPositionToPostLayout(int)}. | |
* | |
* @return Returns the adapter position of the ViewHolder in the latest layout pass. | |
* @see #getAdapterPosition() | |
*/ | |
public final int getLayoutPosition() { | |
return mPreLayoutPosition == NO_POSITION ? mPosition : mPreLayoutPosition; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment