关于ListView与SwipeRefreshLayout上滑冲突的解决方法

最近玩啦一下Google的一个下拉刷新组件SwipeRefreshLayout,比自己之前写的下拉刷新要好的多,简单的做啦一个测试,

刚开始SwipeRefreshLayout里面嵌套一个ListVIew的时候,下拉刷新没有冲突,这个是毫无疑问的,但是SwipeRefreshLayout嵌套啦一个Framelayout之后就出问题了....

如下图的代码:

<android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/swiperereshlayout"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">
        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <ListView
                android:id="@+id/listview"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
            </ListView>
            <ImageView
                android:id="@+id/add"
                android:background="@mipmap/add"
                android:layout_marginRight="20dp"
                android:layout_marginBottom="20dp"
                android:layout_gravity="bottom|right"
                android:layout_width="50dp"
                android:layout_height="50dp" />
        </FrameLayout>
    </android.support.v4.widget.SwipeRefreshLayout>

问题怎么解决呢,就是一个设置一个监听ListView滑动监听器:

如下代码:

listview.setOnScrollListener(onScrollListener);/*滑动监听器*/

接着就是编写滑动监听器的关键代码了:

/*listView滑动*/
    public AbsListView.OnScrollListener onScrollListener=new AbsListView.OnScrollListener() {
        @Override
        public void onScrollStateChanged(AbsListView absListView, int i) {

        }

        @Override
        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
            View firstView = view.getChildAt(firstVisibleItem);
            if(firstVisibleItem ==0 && (firstView == null || firstView.getTop() == 0))
            {
                /*上滑到listView的顶部时,下拉刷新组件可见*/
                swiperereshlayout.setEnabled(true);
            }
            else
            {
                /*不是listView的顶部时,下拉刷新组件不可见*/
                swiperereshlayout.setEnabled(false);
            }
        }
    };

跟其他的冲突的解决方法基本都是一样的思路,只要是ListView到达顶部的时候下拉刷新才可见,才能下拉,这样子,就不会说ListVIew还没上滑到顶部时,SwipeRefreshLayout就下拉刷新了,祝君好运!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值