android listview的最外层套在ScrollView时,如果listview刚好显示一屏幕,会出现无法下拉刷新

原因:在有些自定义刷新的listview中,是通过onTouch来设置下拉刷新功能。如果刚好显示一屏,就会发现进行下拉刷新时在onTouch中无法运行到
   MOVE事件,导致这一现象的原因是onTouch事件中MOVE事件被分发给了ScrollView,导致listview下拉无法下拉刷新。
   解决方法:自定义ScrollView,创建setListView(ListView listView)方法,把listview传进自定义scrollview,然后再自定义ScrollView中重写onTouch方法并添
   加一行代码:listView.onTouch(event);让onTouch事件强制下发给listview。
   例: 
     @Override
     public boolean onTouchEvent(MotionEvent ev) {
          if (listView != null) {
               listView.onTouchEvent(ev);
          }
          return super.onTouchEvent(ev);
     }
    
     public void setListView(ListView listview){
          this.listView = listview;
     }

当然开发中这种情况很少用的额。也可以尝试用swiperefreshlayout或者Scrllview加个LinnerLayout解决哈

你可能感兴趣的:(android listview的最外层套在ScrollView时,如果listview刚好显示一屏幕,会出现无法下拉刷新)