zoukankan      html  css  js  c++  java
  • ScrollView 与ListView 滑动冲突完美解决

    一、介绍ListView高度的设置方法

    二、根据实际需求解决冲突问题

    一、介绍ListView高度的设置方法

    在ScrollView中使用ListView,ListView的高度会不正常。

        方式一:在XML中写死     

    android:layout_width="match_parent"
    android:layout_height="120dp"

        方式二:代码中设置固定高度(如果在运行过程中才能决定ListView高度)

    public void setHeight(int height){
      LayoutParams params = this.listview.getLayoutParams();  
      params.width = LayoutParams.FILL_PARENT;  
      params.height = height;  
      listview.setLayoutParams(layoutParams);
    }

        方式三:代码中动态设置高度(让ListView高度最大 显示完全所有数据)

    public void setHeight(){  
        int height = 0;  
        int count = adapter.getCount();  
        for(int i=0;i<count;i++){  
            View temp = adapter.getView(i,null,listview);  
            temp.measure(0,0);  
            height += temp.getMeasuredHeight();  
        }  
        LayoutParams params = this.listview.getLayoutParams();  
        params.width = LayoutParams.FILL_PARENT;  
        params.height = height;  
        listview.setLayoutParams(layoutParams);  
    }

    二、根据实际需求解决冲突问题

    前提1:ListView 显示全部内容(假如4条数据 我显示满4条)

      上述方式三让ListView高度最大,显示完全数据,滑动时就只会响应ScrollView滑动事件

      此时ListView不能滑动,也没必要滑动,因为已经显示完全数据。

    前提1:ListView 不想显示全部内容(假如100条数据 我只显示10条 滑动查看其余)

      使用上述方式一或二,ListView没有显示完全数据

      但是想焦点在ListView时滑动ListView,焦点在ScrollView时滑动ScrollView

      给ListView加上监听OnTouchListener

    listView.setOnTouchListener(new View.OnTouchListener() {
    
      @Override

      public boolean onTouch(View arg0, MotionEvent arg1) {
        scrollView.requestDisallowInterceptTouchEvent(true);

    return false;
      }
    
}
    );
  • 相关阅读:
    Python 类 元类 new之间的关系
    Scrapy Item类分析
    python中的可变参数和不可变参数
    简易python购物车
    关于Javascrip瀑布流深度解析
    python3.5 的str类型和bytes类型的转换
    php 扩展
    PHP开源网
    ElementUI中树形控件el-tree修改样式/添加title
    SVN 重命名文件夹
  • 原文地址:https://www.cnblogs.com/Sweet-Candy/p/6252639.html
Copyright © 2011-2022 走看看