我有一个画廊,每个当前项目都与显示尺寸相匹配。我希望当用户尝试将 View “扔”到任何一侧时,我只想转到下一个 View ,而不是自动滚动。
我该怎么做?
最佳答案
检查这个 fragment 。它不使用滚动常量,而是依赖滚动键事件来处理不同的分辨率。
private boolean isScrollingLeft(MotionEvent e1, MotionEvent e2){
return e2.getX() > e1.getX();
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY){
int kEvent;
if(isScrollingLeft(e1, e2)){ //Check if scrolling left
kEvent = KeyEvent.KEYCODE_DPAD_LEFT;
}
else{ //Otherwise scrolling right
kEvent = KeyEvent.KEYCODE_DPAD_RIGHT;
}
onKeyDown(kEvent, null);
return true;
}
这段代码属于扩展 Gallery 的 galleryView 模型,其布局如下所示
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="180dp">
<com.example.android.GalleryView
android:id="@+id/gallery"
android:layout_width="fill_parent"
android:layout_height="180dp"
android:gravity="bottom"
android:fadingEdge="none"/>
</LinearLayout>
关于android - 在 Gallery 上通过手势仅导航一个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7148720/