zoukankan      html  css  js  c++  java
  • 解决 listView gridView 与ScrollView嵌套时的冲突

     1 package com.xqx.fight;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 import android.view.Menu;
     6 import android.view.MotionEvent;
     7 import android.view.View;
     8 import android.view.View.OnTouchListener;
     9 import android.widget.ArrayAdapter;
    10 import android.widget.ListView;
    11 
    12 public class MainActivity extends Activity {
    13 
    14     private ListView listView;
    15     private ArrayAdapter<String > adapter;
    16     
    17     @Override
    18     protected void onCreate(Bundle savedInstanceState) {
    19         super.onCreate(savedInstanceState);
    20         setContentView(R.layout.activity_main);
    21         
    22         listView = (ListView) findViewById(R.id.listView);
    23         adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
    24         for(int i=0;i<20;i++)
    25         {
    26             adapter.add("列表项:"+i);
    27         }
    28         listView.setAdapter(adapter);
    29         
    30         listView.setOnTouchListener(new OnTouchListener() {
    31             
    32             @Override
    33             public boolean onTouch(View v, MotionEvent event) {
    34                 //getParent().requestDisallowInterceptTouchEvent(true)  不允许父层拦截或干扰本控件
    35                 listView.getParent().requestDisallowInterceptTouchEvent(true);
    36                 return false;
    37             }
    38         });
    39     }
    40 
    41 }
    42 
    43 MainActivity.class
    MainActivity
    滑动listView的时候可以滑动   滑动listView之外时整个屏幕会滑

    所有的View都有一个onMeasure()方法实际测量自己尺寸的方法

    当listView被scrollView包含的时候 onMeasure接收的参数就有些不同
    普通情况wrapContent会对应一个参数模式 称作AT_MOST
    普通情况 match_parent对应EXACTLY
    ScrollView内部的控件 进行尺寸的计算 onMeasure的参数模式是UNSPECIFIED

    listView onMeasure方法检测模式是UNSPECIFIED 永远是一行

    遇到ScrollView嵌套listView、gridView的时候 会出现页面没有显示ScrollView顶部的现象  这时候  需要将ScrollView里边的最顶部的根布局加入

     android:focusable="true"
    android:focusableInTouchMode="true"

    让根布局获取焦点就可以了

    ScrollView嵌套RecyclerView的时候,RecyclerView的列表条目显示不全

    尝试了很多方法后最终的解决方法是将ScrollView替换成<android.support.v4.widget.NestedScrollView>问题就都解决了

  • 相关阅读:
    AFNetworking 2.0 -1016错误解决办法
    dispatch_once创建单例
    ASIHTTPRequest 1.x:断点续传
    iOS开源项目汇总
    NSSearchPathForDirectoriesInDomains
    开源中国iOS客户端学习——(一)Prefix.pch文件
    UITableView 滚动条
    隐藏UITableView的滚动条以及修改滚动条的颜色,UITableView 滚动到指定行 section
    收藏几个支持中文的PHP字符串截取函数
    Cookie和Session
  • 原文地址:https://www.cnblogs.com/bimingcong/p/4875572.html
Copyright © 2011-2022 走看看