`
yangsongjing
  • 浏览: 248668 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

scrollview里面套listview 滑动事件问题

阅读更多
里面的listview放这个就行了。

package com.angico.stub;

import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ListView;
import android.widget.ScrollView;

public class InnerListView extends ListView{
ScrollView parentScrollView;

    public ScrollView getParentScrollView() {
        return parentScrollView;
    }

    public void setParentScrollView(ScrollView parentScrollView) {
        this.parentScrollView = parentScrollView;
    }

    private int maxHeight;

    public int getMaxHeight() {
        return maxHeight;
    }

    public void setMaxHeight(int maxHeight) {
        this.maxHeight = maxHeight;
    }

    public InnerListView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        // TODO Auto-generated method stub

        if (maxHeight > -1) {

            heightMeasureSpec = MeasureSpec.makeMeasureSpec(maxHeight, MeasureSpec.AT_MOST);

        }

        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        System.out.println(getChildAt(0));
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {

        switch (ev.getAction()) {
            case MotionEvent.ACTION_DOWN:

                setParentScrollAble(false);
            case MotionEvent.ACTION_MOVE:

                break;
            case MotionEvent.ACTION_UP:

            case MotionEvent.ACTION_CANCEL:
                setParentScrollAble(true);
                break;
            default:
                break;
        }
        return super.onInterceptTouchEvent(ev);
    }

    /**
     * @param flag
     */
    private void setParentScrollAble(boolean flag) {

        parentScrollView.requestDisallowInterceptTouchEvent(!flag);
    }

}
分享到:
评论

相关推荐

    Android中自定义ListView,解决scrollview嵌套listview 滑动事件冲突

    总之,解决ScrollView与ListView滑动事件冲突的关键在于正确处理触摸事件的分发,确保每个组件都能在合适的时候接收并处理滑动事件。通过自定义组件或者利用现有组件的特性,我们可以构建出更加符合用户体验的界面。...

    ScrollView嵌套ListVIew两者之间滑动问题

    3. **自定义滚动逻辑**:如果使用的是普通的ScrollView,可以重写其`onInterceptTouchEvent`和`onTouchEvent`方法,以便在ListView内容不足时,将滑动事件传递给ListView,当ListView滑动到边界时,再将事件交给...

    android 解决ScrollView和listView嵌套冲突问题(保证在ScrollView中滑动listView只响应listView的滑动)

    在Android开发中,ScrollView和ListView的嵌套是一个常见的需求,但同时也伴随着许多技术挑战,主要问题在于两者都具有滚动功能,导致冲突,使得用户在滚动时可能会遇到不确定的行为。本篇将详细介绍如何解决这种...

    解决ScrollView,ListView滚动条冲突

    本篇文章将详细讲解如何解决ScrollView与ListView滚动条冲突,并将这一解决方案扩展到其他具有滚动条的控件。 首先,我们来理解问题的本质。ScrollView是一个可以包含多个子视图的垂直滚动容器,而ListView则是一个...

    解决scrollView和listview滚动冲突,实现listview滑动到顶端和底部之后还能拖拽一定的距离,松开后返回

    接下来,我们要实现ListView滑动到底部或顶部后还能继续拖拽一段距离,松手后自动回弹的效果。这可以通过监听ListView的滑动状态并结合Scroller类来实现。以下是一般步骤: 1. **监听滑动状态**:通过重写ListView...

    解决Scrollview嵌套listview下拉刷新的一些问题

    1. 设置ListView的`android:nestedScrollingEnabled="false"`属性,防止ListView内部的滚动事件传递到ScrollView。 2. 自定义ScrollView并重写`onInterceptTouchEvent()`和`onTouchEvent()`方法,根据触摸事件的坐标...

    ScrollView与ListView的滑动冲突

    这类问题通常表现为:当ScrollView内部包含一个ListView或GridView时,用户滑动屏幕时可能无法正常滚动列表中的项,而是整个ScrollView一起滚动,或者出现其它不可预料的行为。下面将详细介绍这种滑动冲突的原因以及...

    安卓listview相关相关-解决ScrollView里面嵌套ListVIew引起的高度和滚动问题.zip

    当ScrollView正在滚动时,可以禁用ListView的滑动,反之亦然。 在提供的压缩包文件中,"解决双重滚动问题"可能包含了针对这些问题的一些解决方案或示例代码。不过,由于无法直接查看代码,你需要自行解压并研究其中...

    ScrollView中自定义ListView

    然而,系统默认的ListView是不建议直接嵌套在ScrollView内的,因为两者都有滚动功能,这可能导致冲突和性能问题。为了克服这个问题,开发者常常需要自定义ListView来适应ScrollView的环境。 首先,我们要理解为什么...

    经典ScrollView嵌套ListView和ScrollView

    很多朋友因项目需求问题需要在ScrollView中嵌套使用ListView或ScrollView 但是彼此的滑动事件会发生冲突,网上大多数都是计算ListView的高度来解决这个问题,但个人亲手尝试 结果ListView的Item要是过多的话ListView...

    ScrollView嵌套ListView滑动冲突的解决方法

    当需要在一个界面中同时展示大量数据和一些额外内容时,可能会将ListView嵌套在ScrollView中,但这种做法往往会导致滑动冲突的问题,即用户难以确定是想滚动整个ScrollView还是单独滑动ListView。本文将深入探讨这个...

    四种方法解决ScrollView嵌套Listview

    在ScrollView和ListView的组合中,可以尝试用NestedScrollView替换ScrollView,这样可以自动处理内部的滑动事件,避免冲突。 ```xml android:layout_width="match_parent" android:layout_height="match_parent...

    ScrollView中嵌套ListView的例子

    问题在于,当ListView被放在ScrollView中时,由于ListView自身已经具备了滚动功能,这可能导致ScrollView无法正确检测到ListView的滚动事件,进而使得整个嵌套结构的滚动变得混乱。用户可能无法滚动到ScrollView的...

    弹性拉伸Scrollview、scrollview嵌套listview和scrollview滑动监听demo

    为了正确处理滑动,你需要设置ListView的滚动条样式为`VISIBLE`,并禁用ScrollView的滚动。然后,通过监听ListView的滑动事件,手动控制ScrollView的滚动。下面是一个示例: ```xml <ScrollView android:layout_...

    ListViewForScrollView实现Scrollview中嵌套listView.zip

    因为ScrollView会尝试捕获所有的触摸事件,导致ListView无法正确处理滑动,从而丧失其自身的滚动功能。为了解决这个问题,开发者通常需要自定义一个实现嵌套滚动的组件,或者使用现有的第三方库。 在这个...

    ScrollView中嵌套listview

    总之,解决ScrollView中嵌套ListView的滑动冲突问题,关键在于正确地处理触摸事件和选择合适的布局策略。根据实际需求和目标设备的API级别,开发者可以从上述方法中选择合适的方式来实现流畅的用户体验。

    ScrollView,嵌套ListView,ListView并同时嵌套GridView

    当ScrollView和ListView/GridView都尝试处理用户的滑动事件时,可能会导致滚动不顺畅或者无法正常滚动。为了解决这个问题,有以下几种策略: 1. 使用NestedScrollView替代ScrollView。NestedScrollView是Android ...

    解决ScrollView嵌套ListView Demo

    默认情况下,ScrollView会尝试处理所有的触摸事件,导致ListView无法正确接收并处理滑动事件,从而无法正常滚动。 解决这个问题的关键在于正确处理触摸事件的分发。Android的事件分发机制包括三个主要方法:...

    scrollview与listview,viewpager共存

    在ScrollView中嵌套ListView会导致性能问题,因为ScrollView会尝试管理其所有子视图的滚动,而ListView已经在处理自己的滚动逻辑。 然后是ViewPager。ViewPager允许用户在多个页面之间水平滑动,常用于实现Tab切换...

    Android解决ScrollView和ListView冲突问题Demo

    可以通过重写ListView的onInterceptTouchEvent和onTouchEvent方法,只处理滑动事件,避免事件传递到ScrollView。 ```java public class CustomListView extends ListView { @Override public boolean ...

Global site tag (gtag.js) - Google Analytics