46 lines
1.4 KiB
Java
46 lines
1.4 KiB
Java
package androidx.core.widget;
|
|
|
|
import android.widget.ListView;
|
|
import androidx.annotation.NonNull;
|
|
public class ListViewAutoScrollHelper extends AutoScrollHelper {
|
|
private final ListView mTarget;
|
|
|
|
public ListViewAutoScrollHelper(@NonNull ListView listView) {
|
|
super(listView);
|
|
this.mTarget = listView;
|
|
}
|
|
|
|
@Override // androidx.core.widget.AutoScrollHelper
|
|
public boolean canTargetScrollHorizontally(int i) {
|
|
return false;
|
|
}
|
|
|
|
@Override // androidx.core.widget.AutoScrollHelper
|
|
public boolean canTargetScrollVertically(int i) {
|
|
ListView listView = this.mTarget;
|
|
int count = listView.getCount();
|
|
if (count == 0) {
|
|
return false;
|
|
}
|
|
int childCount = listView.getChildCount();
|
|
int firstVisiblePosition = listView.getFirstVisiblePosition();
|
|
int i2 = firstVisiblePosition + childCount;
|
|
if (i > 0) {
|
|
if (i2 >= count && listView.getChildAt(childCount - 1).getBottom() <= listView.getHeight()) {
|
|
return false;
|
|
}
|
|
} else if (i >= 0) {
|
|
return false;
|
|
} else {
|
|
if (firstVisiblePosition <= 0 && listView.getChildAt(0).getTop() >= 0) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
@Override // androidx.core.widget.AutoScrollHelper
|
|
public void scrollTargetBy(int i, int i2) {
|
|
ListViewCompat.scrollListBy(this.mTarget, i2);
|
|
}
|
|
}
|