【IT168技术】今天要实现一个左右滑屏的功能,且滑屏中要装载 listview,当单滑屏时冇有问题,当加载listview 后发现 左右滑屏不能 发现需要 修改 触摸事件分派。在当前加载滑屏和listview 的Activity 中为左右滑屏控件(我用viewgroup) 添加分派。
public boolean dispatchTouchEvent(MotionEvent ev){
this.mScrollLayout.onTouchEvent(ev);//在这里先处理下你的手势左右滑动事件
return super.dispatchTouchEvent(ev);
}
其中 mScrollLayout 为 viewgroup
第二当自定义滑屏控件后发现 只能在启动时加载一次数据,其它时候添加数据到界面 无响应
如
programList.setAdapter(programApapter);
数据不会更新
需要修改滑屏控件中的 onLayout
protected void onLayout(boolean changed, int l, int t, int r, int b) {
/*if (changed) {*///加了之后第二次不显示
int childLeft = 0;
final int childCount = getChildCount();
for (int i = 0; i < childCount; i++) {
final View childView = getChildAt(i);
if (childView.getVisibility() != View.GONE) {
final int childWidth = childView.getMeasuredWidth();
childView.layout(childLeft, 0, childLeft + childWidth,
childView.getMeasuredHeight());
childLeft += childWidth;
}
}
}
/*}*/
重写OnLayout
不要设置/*if (changed) {*/变量去判断布局是否改变,否则第二次界面刷新的时候不会启用if{}里面的程序