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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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"/>


本文出自 “旦旦家园” 博客,谢绝转载!

以上是关于ScrollView内嵌套ListView时的显示与滑动问题的主要内容,如果未能解决你的问题,请参考以下文章

解决ScrollView下嵌套ListView/GridView进页面不在顶部的问题以及数据显示不全的问题( 只显示一行)

ScrollView嵌套listView,显示头像错乱

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

一键解决ScrollView嵌套ListView仅仅显示一行的问题

android中ScrollView嵌套ListView或GridView显示位置问题

ListView只能显示第一个item问题(ScrollView嵌套ListView)