ScrollView内嵌套ListView时的显示与滑动问题

最近的项目中遇到了SrcollView内嵌ListView的需求,要求ListView内容全部展示,但是实际效果ListView却只显示了一行,一开始以为是代码异常了,只生成了一行视图,实际上就是SrcollView和ListView的冲突问题。解决办法就是禁止ListView的滑动。

一、自定ListView,其实就是包了一层处理而已,很简单。

package com.hundsun.bridge.view;

import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ListView;

/**
 * @Description: 禁止滑动的ListView
 * @Author: [email protected]
 * @Package: com.hundsun.bridge.view
 * @Date: 2017/3/31
 * @Copyright: 版权归 HsYuntai 所有
 * <ModifyLog>
 * @ModifyContent:
 * @Author:
 * @Date:
 * </ModifyLog>
 */
public class FixedListView extends ListView {

    public FixedListView(Context context) {
        super(context);
    }

    public FixedListView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public FixedListView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        if (ev.getAction() == MotionEvent.ACTION_MOVE) {
            return true;
        }
        return super.dispatchTouchEvent(ev);
    }

    @Override
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }

}

二、布局文件跟普通的ListView一样,下面给大家贴出我的代码参考。

<com.hundsun.bridge.view.FixedListView    android:id="@+id/userMenuListView"    style="@style/HundsunStyleWmHw"    android:cacheColorHint="@android:color/transparent"    android:choiceMode="singleChoice"    android:divider="@drawable/hundsun_shape_user_menu_item_divider"    android:dividerHeight="@dimen/hundsun_dimen_small_divide"    android:fadingEdge="none"    android:listSelector="@android:color/transparent"    android:overScrollMode="never"    android:scrollbars="none"    android:paddingTop="@dimen/hundsun_dimen_small_divide"    android:paddingBottom="@dimen/hundsun_dimen_small_divide"    android:background="@drawable/hundsun_shape_top_bottom_line"/>
时间: 2024-11-16 22:16:12

ScrollView内嵌套ListView时的显示与滑动问题的相关文章

解决ScrollView下嵌套ListView、GridView显示不全的问题(冲突)

原文地址:http://blog.csdn.net/cs_li1126/article/details/12906203 一.使用网上用的动态改变listview高度的方法,该方法只适用于item布局是LinearLayout布局的情况,不能是其他的,因为其他的Layout(如RelativeLayout)没有重写onMeasure(),所以会在onMeasure()时抛出异常.所以使用限制较大. [java] view plaincopy public class Utility { publ

ScrollView中嵌套ListView时,listview高度显示的问题

方法一:直接更改listview的控件高度,动态获取(根据条目和每个条目的高度获取) 前几天因为项目的需要,要在一个ListView中放入另一个ListView,也即在一个ListView的每个ListItem中放入另外一个ListView.但刚开始的时候,会发现放入的小ListView会显示不完全,它的高度始终有问题.上网查了下,发现别人也有遇到这样的问题,而大多数人都不推荐这样的设计,因为默认情况下Android是禁止在ScrollView中放入另外的ScrollView的,它的高度是无法计

解决小米系统下ViewPager、ScrollView内嵌套WebView时,Touch事件不响应的问题

前言:一直拿原生android4.4的Nexus5测试,结果装到老大的小米上,出了bug.安卓的兼容性问题真是....难以形容. Bug详细描述:本人用webview运行JS Goole地图,单独使用该webview时一切正常,而当放在scrollview和viewpager下,小米手机上便无法移动地图,其他手机是没问题的. 解决方案: 一.ScrollView内嵌套WebView 作为一个新手,我简单的检查了viewpager和scrollview的三个函数(dispatchTouchEven

在ScrollView中嵌套ListView时,需要根据内容来设置listView的高度

动态设置ListView的高度 public void setListViewHeightBasedOnChildren(ListView mListView) { ListAdapter listAdapter = mListView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int i = 0; i < listAdapter.getCount(); i++) { View lis

解决ScrollView下嵌套ListView、GridView显示不全的问题

/** * 自定义gridview,解决ListView中嵌套gridview显示不正常的问题(1行半) * @author wangyx * @version 1.0.0 2012-9-14 */ public class MyGridView extends GridView{ public MyGridView(Context context, AttributeSet attrs) { super(context, attrs); } public MyGridView(Context

NestedScrollView嵌套ListView时只显示一行的解决方法

在使用CoordinatorLayout和AppBarLayout实现嵌套滑动的时候,出现listview没有嵌套滑动: 如果要实现嵌套滑动,则需要添加NestedScrollView,但是结果发现listview只显示一行数据 <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent"

Android ScrollView中嵌套ListView只显示一行的解决办法

Android编程中,ScrollView嵌套ListView时,会无法正确的计算ListView的大小.解决的办法如下: (非原创,网上搜到的解决方法) public class MainActivity extends Activity { private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); s

解决ScrollView中嵌套Listview,Listview中嵌套Listview显示不完整和滑动冲突的问题

在一个滑动控件或者是布局里面,添加另外一个可以滑动的控件,通常会造成一些莫名其妙的问题.今天主要介绍在工作中遇到的,在ScrollView布局中嵌套Listview显示不正常,和在Listview中嵌套Listview的滑动冲突的问题. 1.ScrollView布局中嵌套Listview显示不正常的解决方案 目前来说,解决这个问题有好几种解决方案,这里只介绍其中两种比较简单易行的其中两种. (1)自定义一个Listview,继承自Listview,代码如下: public class ListV

ScrollView里面添加ListView时,解决ListView的显示问题

在ScrollView里面添加ListView时,看了很多其他人的讲述,好像ListView只显示一条信息,为此简单新写了一个ListView控件,在布局文件里调用就可以了,代码如下: 1:ScrollViewWithListView.java 1 package com.ghp.view; 2 3 import android.widget.ListView; 4 5 /** 6 * 7 * @Description: scrollview中内嵌listview的简单实现 8 * 9 * @F