如何让ListView和它上面的好多组件一起滑动

 我来答
liuhaiming1313
2016-04-10 · TA获得超过213个赞
知道小有建树答主
回答量:440
采纳率:32%
帮助的人:93.9万
展开全部
2种方法
1: 把listview上面的其他组件当作listview的item 但是这些item要特别的处理,因为是在listview的上面,所以视图再描绘的时候,你要根据实际组件的多少根据position来单独处理,因为其他的listview的item可能会有好几条。
2: listview外面包一层scrollview,这样的话就可以整体滑动了,看起来就好像和它上面的其他组件一起滑动了,但是要注意,listview和scrollview一起的时候可能会有冲突,要额外的对listview或者scrollview处理下,这个你自己百度了
huanglenzhi
推荐于2016-10-12 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517180
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  把你所有想一起动的控件放到一个scrollview下,然后listview用这个
  public void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
  int mExpandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
  super.onMeasure(widthMeasureSpec, mExpandSpec);
  }
  }
  
  scrollview‍用这个
  
  /**
  * 解决ScrollView嵌套ViewPager出现的滑动冲突问题
  */
  public class MyScrollView extends ScrollView {
  View.OnTouchListener mGestureListener;
  // 滑动距离及坐标
  private float xDistance, yDistance, xLast, yLast;
  public MyScrollView(Context context, AttributeSet attrs) {
  super(context, attrs);
  }
  @Override
  public boolean onInterceptTouchEvent(MotionEvent ev) {
  switch (ev.getAction()) {
  case MotionEvent.ACTION_DOWN:
  xDistance = yDistance = 0f;
  xLast = ev.getX();
  yLast = ev.getY();
  break;
  case MotionEvent.ACTION_MOVE:
  final float curX = ev.getX();
  final float curY = ev.getY();
  
  xDistance += Math.abs(curX - xLast);
  yDistance += Math.abs(curY - yLast);
  xLast = curX;
  yLast = curY;
  
  if(xDistance > yDistance){
  return false;
  }
  }
  return super.onInterceptTouchEvent(ev);
  }
  }
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chaozhung
2016-03-08 · TA获得超过567个赞
知道小有建树答主
回答量:803
采纳率:67%
帮助的人:267万
展开全部
最好是自定义listview来完成,原声的listview是很难完成一些复杂的动态布局的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式