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

  • 相关阅读:
    fastapi+vue搭建免费代理IP网站部署至heroku
    如何选择免费代理ip,需要注意哪些指标值和基本参数
    如何部署MongoDB并开启远程访问Docker版
    Linux设置Frps Frpc服务开启启动
    Docker搭建VS Code Server ,设置访问密码随时随地写代码
    薅羊毛须及时 多平台微信线报提醒脚本
    python+selenium实现百度关键词搜索自动化操作
    用python selenium 单窗口单IP刷网站流量脚本
    杂记 内容会在留言中补充
    c#杂记
  • 原文地址:https://www.cnblogs.com/bimingcong/p/4875572.html
Copyright © 2011-2022 走看看