The*_*ude 10 android horizontalscrollview android-scrollview swipe-gesture android-relativelayout
好!过去几周我一直试图这样做,似乎无法找到一个很好的解决方案来实现我想要的.一直在尝试使用HorizontalScrollView,Gallery(不推荐使用).
我现在正在研究RecycleView,因为我遇到了这个方法.smoothScrollToPosition(),并认为这可能对我有帮助.
以下是我想要完成的事情的说明:
我还必须能够以编程方式创建相对布局
任何人都可以向我指出如何实现这一目标吗?有没有本土的方法呢?
编辑:在进一步了解@CommonsWare关于调查ViewPager的建议和来自Dave Smith的commonsware.com/blog/2012/08/20/第三篇文章后,我认为这是要走的路.还没有将它改为我的使用,但看起来不错.
我正在使用他的Github中的Dave Smiths样本:https://gist.github.com/devunwired/8cbe094bb7a783e37ad1
不要使用这种方法,它会使用大量内存(如果在某些时候您需要扩展到更通用的解决方案),因为您必须在内存中保留大量的ViewPager
页面(Fragment
)。我遇到了同样的挑战,我已经使用HorizontalListView完成了这个任务。
因此,您需要创建一个Adapter
添加“存根”的项目View
,以便使第一个或最后一个(可能更多地取决于同时所需的可见视图)居中于屏幕中心,因为这是一个ListView
. 对于捕捉效果,您可以使用类似的东西(所有项目都需要具有相同的尺寸):
View.OnTouchListener hListViewsOnTouchListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP && v instanceof HListView) {
View c = ((HListView) v).getChildAt(0);
int posToGo = Math.abs(c.getX()) < c.getWidth() / 2 ? ((HListView) v).getFirstVisiblePosition() : ((HListView) v).getFirstVisiblePosition() + 1;
((HListView) v).smoothScrollToPositionFromLeft(posToGo, 0);
}
return false;
}
};
Run Code Online (Sandbox Code Playgroud)
这种方法不仅使用更少的内存,而且在子视图数量方面是通用的,它更平滑,并且所有元素都是可点击的(不仅仅是居中的元素)......好吧,这是一个ListView
:)
这是最终输出示例的屏幕截图:
小心。
归档时间: |
|
查看次数: |
1561 次 |
最近记录: |