社区
Xamarin技术
帖子详情
Xamarin.Forms中ScrollViews嵌套ScrollView 都是横向的,里面的ScrollView不响应
XXP_KING_VB
2016-06-21 03:27:48
RT,各位大牛,我最近在学习xamarin.forms,遇到一个问题,大致就是标题上说的,两个ScrollView嵌套,结果里面的ScrollView不响应,只有外面的ScrollView响应了我移动这个手势操作。这个要怎么解决。
如图,外面的是B,里面的是A
献上仅有的28分,等待大神解答
...全文
2724
3
打赏
收藏
Xamarin.Forms中ScrollViews嵌套ScrollView 都是横向的,里面的ScrollView不响应
RT,各位大牛,我最近在学习xamarin.forms,遇到一个问题,大致就是标题上说的,两个ScrollView嵌套,结果里面的ScrollView不响应,只有外面的ScrollView响应了我移动这个手势操作。这个要怎么解决。 如图,外面的是B,里面的是A 献上仅有的28分,等待大神解答
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qq_17134583
2016-07-26
打赏
举报
回复
你标签在下是怎么实现的?求解答,谢谢
荖司机
2016-06-21
打赏
举报
回复
如果帮到你了,记得给分。
荖司机
2016-06-21
打赏
举报
回复
众所周知,android 里两个相同方向的ScrollView是不能嵌套的。
你需要再写个ScrollView。
package com.sun.shine.study.innerscrollview.view;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ScrollView;
public class InnerScrollView extends ScrollView {
public ScrollView parentScrollView;
public InnerScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
private int lastScrollDelta = 0;
public void resume() {
overScrollBy(0, -lastScrollDelta, 0, getScrollY(), 0, getScrollRange(), 0, 0, true);
lastScrollDelta = 0;
}
int mTop = 10;
public void scrollTo(View targetView) {
int oldScrollY = getScrollY();
int top = targetView.getTop() - mTop;
int delatY = top - oldScrollY;
lastScrollDelta = delatY;
overScrollBy(0, delatY, 0, getScrollY(), 0, getScrollRange(), 0, 0, true);
}
private int getScrollRange() {
int scrollRange = 0;
if (getChildCount() > 0) {
View child = getChildAt(0);
scrollRange = Math.max(0, child.getHeight() - (getHeight()));
}
return scrollRange;
}
int currentY;
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (parentScrollView == null) {
return super.onInterceptTouchEvent(ev);
} else {
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
// 将父scrollview的滚动事件拦截
currentY = (int)ev.getY();
setParentScrollAble(false);
return super.onInterceptTouchEvent(ev);
} else if (ev.getAction() == MotionEvent.ACTION_UP) {
// 把滚动事件恢复给父Scrollview
setParentScrollAble(true);
} else if (ev.getAction() == MotionEvent.ACTION_MOVE) {
}
}
return super.onInterceptTouchEvent(ev);
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
View child = getChildAt(0);
if (parentScrollView != null) {
if (ev.getAction() == MotionEvent.ACTION_MOVE) {
int height = child.getMeasuredHeight();
height = height - getMeasuredHeight();
// System.out.println("height=" + height);
int scrollY = getScrollY();
// System.out.println("scrollY" + scrollY);
int y = (int)ev.getY();
// 手指向下滑动
if (currentY < y) {
if (scrollY <= 0) {
// 如果向下滑动到头,就把滚动交给父Scrollview
setParentScrollAble(true);
return false;
} else {
setParentScrollAble(false);
}
} else if (currentY > y) {
if (scrollY >= height) {
// 如果向上滑动到头,就把滚动交给父Scrollview
setParentScrollAble(true);
return false;
} else {
setParentScrollAble(false);
}
}
currentY = y;
}
}
return super.onTouchEvent(ev);
}
private void setParentScrollAble(boolean flag) {
parentScrollView.requestDisallowInterceptTouchEvent(!flag);
}
}
Xamarin.Forms
-PullToRefreshLayout, 在
Xamarin.Forms
中
,拖动以刷新
Scroll
View
或者 ListView.zip
Xamarin.Forms
-PullToRefreshLayout, 在
Xamarin.Forms
中
,拖动以刷新
Scroll
View
或者 ListView 用于
Xamarin.Forms
的 PullToRefreshLayout面向
Xamarin.Forms
和Android的refresh刷新布局的实现。它的目标是创建一...
Xamarin.Forms
-PullToRefreshLayout:拉动以刷新
Xamarin.Forms
中
的
Scroll
View
或ListView
Xamarin.Forms
的PullToRefreshLayout更新-正式弃用该库已正式弃用,您现在可以将正式的用作一部分。 此库将不做进一步的工作,所有问题都将关闭。 实现针对iOS和Android的
Xamarin.Forms
的刷新刷新布局。 目的是创建...
一个vs2017 使用
Xamarin.forms
开发APP的demo
一个vs2017 使用
Xamarin.forms
开发APP的demo. 使用
Xamarin.forms
来开发跨平台的demo
xamarin-forms-book-preview:“使用
Xamarin.Forms
创建移动应用程序”预览版的示例代码
xamarin-forms-book-preview “使用
Xamarin.Forms
创建移动应用程序”预览版的示例代码笔记所有项目都已升级到
Xamarin.Forms
1.2.3。 ###介绍在致谢标题(第 29 页)下的最后一句
中
,“with”一词应为“without...
解决
Scroll
View
中
listView下拉上拉刷新问题
解决
Scroll
View
中
listView下拉上拉刷新问题
Xamarin技术
436
社区成员
235
社区内容
发帖
与我相关
我的任务
Xamarin技术
欢迎来到Xamarin技术交流论坛学习交流,Xamarin是一个行动App开发平台,开发人员透过Xamarin可开发出iOS、Android 与Windows 等平台的...
复制链接
扫一扫
分享
社区描述
欢迎来到Xamarin技术交流论坛学习交流,Xamarin是一个行动App开发平台,开发人员透过Xamarin可开发出iOS、Android 与Windows 等平台的...
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章