如何确定垂直ScrollView的方向? 我需要隐藏并显示其他滚动视图的线性布局滚动如何确定垂直ScrollView的方向?
0
A
回答
1
您可以使用onScrollChanged(int l, int t, int oldl, int oldt)
方法。由于不存在监听器的setter,但只是该方法,您将不得不创建自己的ScrollView类并重写该方法,并在您的实现中执行您的操作。
0
public class ObservableScrollView extends ScrollView {
private static final int DEFAULT_THRESHOLD_DP = 4;
private ScrollDirectionListener scrollDirectionListener;
private int scrollThreshold;
public ObservableScrollView(Context context) {
this(context, null);
}
public ObservableScrollView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public ObservableScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
private void init(Context context) {
scrollThreshold = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, DEFAULT_THRESHOLD_DP, context.getResources().getDisplayMetrics());
}
@Override
protected void onScrollChanged(int x, int y, int oldX, int oldY) {
super.onScrollChanged(x, y, oldX, oldY);
if (Math.abs(y - oldY) > scrollThreshold && scrollDirectionListener != null) {
if (y > oldY) {
scrollDirectionListener.onScrollUp(Math.abs(y - oldY));
} else {
scrollDirectionListener.onScrollDown(Math.abs(y - oldY));
}
}
}
public void setScrollThresholdInPx(int px) {
scrollThreshold = px;
}
public void setScrollThresholdInDp(Context context, float dp) {
scrollThreshold = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics());
}
public void setOnScrollDirectionListener(ScrollDirectionListener listener) {
scrollDirectionListener = listener;
}
public interface ScrollDirectionListener {
void onScrollDown(int pixels);
void onScrollUp(int pixels);
}}
得到回答:)使用该自定义滚动型
ScrollView.setOnScrollDirectionListener(new ObservableScrollView.ScrollDirectionListener() {
@Override
public void onScrollDown(int pixels) {
contenttool.setVisibility(View.INVISIBLE);
}
@Override
public void onScrollUp(int pixels) {
contenttool.setVisibility(View.VISIBLE);
}
});
+0
这正是我告诉你的 - 在ScrollView的自定义版本中覆盖'onScrollChanged()'。 – Ridcully
相关问题
- 1. 确定touchmove的垂直方向
- 2. UITableview垂直ScrollView
- 3. 如何垂直定向jPlayer?
- 4. 垂直水平RecyclerView ScrollView
- 5. 确定垂直或水平方向是否缩放
- 6. css垂直方向文本
- 7. SWT TabFolder垂直方向
- 8. scrollView复位是当我垂直向下滚动时的位置
- 9. 垂直直方图显示不正确
- 10. UITableview中的水平和垂直scrollview ios
- 11. 垂直对齐按钮和垂直定向LinearLayout内的垂直定向LinearLayout的问题
- 12. 如何在垂直方向的LinearLayout中垂直排列垂直LinearLayout,以便填充屏幕?
- 13. 如何在Scrollview中的Webviews中进行垂直滚动?
- 14. 为什么垂直方向不能垂直渲染图像?
- 15. 垂直scrollview不工作在黑莓
- 16. ScrollView - 手势识别器 - 垂直滑动
- 17. ios scrollview - 子视野出界垂直
- 18. Android垂直滚动ListView水平scrollView
- 19. 添加水平scrollView垂直滚动uicollectionView
- 20. 垂直于3D点集合的方向?
- 21. 垂直滑块的$ .noUiSlider反方向
- 22. 如何检测scrollView的滚动方向?
- 23. 垂直直方图
- 24. android两个ScrollViews嵌套/小水平ScrollView垂直ScrollView
- 25. 如何在rtl方向上仅设置垂直方向的完美滚动
- 26. Android的 - 垂直方向的作品,水平方向空白
- 27. 如何仅将ScrollView剪辑垂直放置?
- 28. scrollview进入gridlayout单元格:如何防止它垂直增长?
- 29. 如何使垂直scrollview滚动行可见?
- 30. 如何在垂直行中使用ScrollView控件Windows Phone 8.1
看一看[这](http://stackoverflow.com/a/7491074/3111870)。 –