Gre*_*der 2 android view android-recyclerview
有没有办法在 API 11 上使用类似于“View.canScrollVertically”的东西?
http://developer.android.com/reference/android/view/View.html#canScrollVertically(int)
谢谢。
所以,实现很简单:
public boolean canScrollVertically(int direction) {
final int offset = computeVerticalScrollOffset();
final int range = computeVerticalScrollRange() - computeVerticalScrollExtent();
if (range == 0) return false;
if (direction < 0) {
return offset > 0;
} else {
return offset < range - 1;
}
}
Run Code Online (Sandbox Code Playgroud)
因此,您可以轻松地将其复制到您的代码中;但是,这些computeX()方法是受保护的。这里的一种解决方案是子类化View并提供您自己的实现:
public class CustomView extends View {
public CustomView(Context context) {
super(context);
}
public CustomView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public boolean compatCanScrollVertically(int direction) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
return canScrollVertically(direction);
} else {
// TODO Remove when minSdkVersion >= 14
final int offset = computeVerticalScrollOffset();
final int range = computeVerticalScrollRange() - computeVerticalScrollExtent();
if (range == 0) return false;
if (direction < 0) {
return offset > 0;
} else {
return offset < range - 1;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7440 次 |
| 最近记录: |