【发布时间】:2014-10-03 08:41:56
【问题描述】:
我收到此错误:
调用需要 API 级别 14(当前最低为 8): android.view.ViewGroup#canScrollHorizontally。
如何在 14 岁之前的 API 级别解决这个问题?
public class ViewPagerEx extends ViewGroup{
@Override
public boolean performAccessibilityAction(View host, int action, Bundle args) {
if (super.performAccessibilityAction(host, action, args)) {
return true;
}
switch (action) {
case AccessibilityNodeInfoCompat.ACTION_SCROLL_FORWARD: {
if (canScrollHorizontally(1)) {
setCurrentItem(mCurItem + 1);
return true;
}
} return false;
case AccessibilityNodeInfoCompat.ACTION_SCROLL_BACKWARD: {
if (canScrollHorizontally(-1)) {
setCurrentItem(mCurItem - 1);
return true;
}
} return false;
}
return false;
}
public boolean canScrollHorizontally(int direction) {
if (mAdapter == null) {
return false;
}
final int width = getClientWidth();
final int scrollX = getScrollX();
if (direction < 0) {
return (scrollX > (int) (width * mFirstOffset));
} else if (direction > 0) {
return (scrollX < (int) (width * mLastOffset));
} else {
return false;
}
}
}
【问题讨论】:
-
这取决于你是否要支持更新的安卓手机,你可以将你的 api 级别提高到 14...否则你必须找到另一个替代你想做的事情,这只是一个建议
-
不清楚是写了canScrollHorizotnally方法还是想使用框架提供的方法
标签: android viewgroup android-version