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>问题就都解决了

  • 相关阅读:
    vue-cil和webpack中本地静态图片的路径问题解决方案
    vue-cil 中的配置分析
    webpack中mainifest.js vendor.js app.js 三者的区别
    css 中可以继承的属性
    有关正则表达式的Js方法(replace)
    css 常用的几种垂直居中(包括图片)
    如何在Vue中建立全局引用或者全局命令
    删除数组中多个不连续的数组元素的正确姿势
    数据库
    代码片段
  • 原文地址:https://www.cnblogs.com/bimingcong/p/4875572.html
Copyright © 2011-2022 走看看