am de59baab: Merge "Ensure list scrolling API is in parity with view scrolling API" into klp-dev
* commit 'de59baab31271a186a2f32719abd19a8adbda1e3': Ensure list scrolling API is in parity with view scrolling API
This commit is contained in:
@@ -30397,6 +30397,7 @@ package android.widget {
|
||||
ctor public AbsListView(android.content.Context, android.util.AttributeSet, int);
|
||||
method public void afterTextChanged(android.text.Editable);
|
||||
method public void beforeTextChanged(java.lang.CharSequence, int, int, int);
|
||||
method public boolean canScrollList(int);
|
||||
method public void clearChoices();
|
||||
method public void clearTextFilter();
|
||||
method public void deferNotifyDataSetChanged();
|
||||
@@ -30438,7 +30439,7 @@ package android.widget {
|
||||
method public int pointToPosition(int, int);
|
||||
method public long pointToRowId(int, int);
|
||||
method public void reclaimViews(java.util.List<android.view.View>);
|
||||
method public boolean scrollListBy(int);
|
||||
method public void scrollListBy(int);
|
||||
method public void setAdapter(android.widget.ListAdapter);
|
||||
method public void setCacheColorHint(int);
|
||||
method public void setChoiceMode(int);
|
||||
|
||||
@@ -4924,11 +4924,37 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
|
||||
* Scrolls the list items within the view by a specified number of pixels.
|
||||
*
|
||||
* @param y the amount of pixels to scroll by vertically
|
||||
* @return true if the list is able to scroll, or false if the list is
|
||||
* already at the beginning/end and unable to scroll any more.
|
||||
* @see #canScrollList(int)
|
||||
*/
|
||||
public boolean scrollListBy(int y) {
|
||||
return !trackMotionScroll(-y, -y);
|
||||
public void scrollListBy(int y) {
|
||||
trackMotionScroll(-y, -y);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the items in the list can be scrolled in a certain direction.
|
||||
*
|
||||
* @param direction Negative to check scrolling up, positive to check
|
||||
* scrolling down.
|
||||
* @return true if the list can be scrolled in the specified direction,
|
||||
* false otherwise.
|
||||
* @see #scrollListBy(int)
|
||||
*/
|
||||
public boolean canScrollList(int direction) {
|
||||
final int childCount = getChildCount();
|
||||
if (childCount == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final int firstPosition = mFirstPosition;
|
||||
final Rect listPadding = mListPadding;
|
||||
if (direction > 0) {
|
||||
final int lastBottom = getChildAt(childCount - 1).getBottom();
|
||||
final int lastPosition = firstPosition + childCount;
|
||||
return lastPosition < mItemCount || lastBottom > getHeight() - listPadding.bottom;
|
||||
} else {
|
||||
final int firstTop = getChildAt(0).getTop();
|
||||
return firstPosition > 0 || firstTop < listPadding.top;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user