ScrollView中嵌套ListView

效果图:

实现过程:

1、自定义类并继承ListView, 重写onMeasure(int widthMeasureSpec, int heightMeasureSpec)方法。

 1 public class ListViewOnScroll extends ListView{
 2     public ListViewOnScroll(Context context) {
 3         super(context);
 4         // TODO Auto-generated constructor stub
 5     }
 6     public ListViewOnScroll(Context context, AttributeSet attrs) {
 7         super(context, attrs);
 8     }
 9     @Override
10     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
11         int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
12                 MeasureSpec.AT_MOST);
13         super.onMeasure(widthMeasureSpec, expandSpec);
14     }
15 } 

2、layout中使用自定义类(以效果图为例)

 1 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:id="@+id/scrollview"
 4     android:layout_width="fill_parent"
 5     android:layout_height="fill_parent"
 6     android:fillViewport="true"
 7     android:focusable="false"
 8     android:orientation="vertical" >
 9
10     <LinearLayout
11         android:layout_width="fill_parent"
12         android:layout_height="fill_parent"
13         android:orientation="vertical" >
14
15         <RelativeLayout
16             android:id="@+id/titleNetRank"
17             android:layout_width="fill_parent"
18             android:layout_height="wrap_content"
19             android:background="@drawable/selector_listview_banner"
20             android:gravity="center_vertical"
21             android:orientation="horizontal" >
22
23             <TextView
24                 android:layout_width="wrap_content"
25                 android:layout_height="wrap_content"
26                 android:layout_marginLeft="@dimen/space_15"
27                 android:text="网络排行榜"
28                 android:textColor="@color/text_color_blue"
29                 android:textStyle="bold" />
30         </RelativeLayout>
31
32         <com.eytsg.ui.uc.ListViewOnScroll
33             android:id="@+id/lvNetRank"
34             android:layout_width="fill_parent"
35             android:layout_height="wrap_content"
36             android:scrollbars="none" />
37
38         <RelativeLayout
39             android:id="@+id/titleErYaRank"
40             android:layout_width="fill_parent"
41             android:layout_height="wrap_content"
42             android:background="@drawable/selector_listview_banner"
43             android:gravity="center_vertical"
44             android:orientation="horizontal" >
45
46             <TextView
47                 android:layout_width="wrap_content"
48                 android:layout_height="wrap_content"
49                 android:layout_marginLeft="@dimen/space_15"
50                 android:text="尔雅排行榜"
51                 android:textColor="@color/text_color_blue"
52                 android:textStyle="bold" />
53         </RelativeLayout>
54
55         <com.eytsg.ui.uc.ListViewOnScroll
56             android:id="@+id/lvEryaRank"
57             android:layout_width="fill_parent"
58             android:layout_height="wrap_content"
59             android:scrollbars="none" />
60
61         <RelativeLayout
62             android:id="@+id/titleTuijianRank"
63             android:layout_width="fill_parent"
64             android:layout_height="wrap_content"
65             android:background="@drawable/selector_listview_banner"
66             android:gravity="center_vertical"
67             android:orientation="horizontal" >
68
69             <TextView
70                 android:layout_width="wrap_content"
71                 android:layout_height="wrap_content"
72                 android:layout_marginLeft="@dimen/space_15"
73                 android:text="好书推荐"
74                 android:textColor="@color/text_color_blue"
75                 android:textStyle="bold" />
76         </RelativeLayout>
77
78         <com.eytsg.ui.uc.ListViewOnScroll
79             android:id="@+id/lvTuiJianRank"
80             android:layout_width="fill_parent"
81             android:layout_height="wrap_content"
82             android:scrollbars="none" />
83     </LinearLayout>
84
85 </ScrollView>
时间: 2024-08-14 05:02:38

ScrollView中嵌套ListView的相关文章

笔记整理1_1:解决在ScrollView中嵌套ListView不能显示全部item的问题

package com.example.scrollview; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ListView; import com.pb.custo

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

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

Android -- 在ScrollView中嵌套ListView

在做一个工程,这个工程的布局可以相当的复杂,最外面是ScrollView,在ScrollView里面有两个Listview,这下好了,布局出来了,放在机子上跑,卡得想死有木有,信息乱跑乱出现,表示非常头疼. 在网上百度之后,发现有人解决了这个问题,便把这个解决方案转载过来分享一下. 它的思路就是在设置完ListView的Adapter后,根据ListView的子项目重新计算ListView的高度,然后把高度再作为LayoutParams设置给ListView,这样它的高度就正确了. public

Android实战技巧:如何在ScrollView中嵌套ListView

前几天因为项目的需要,要在一个ListView中放入另一个ListView,也即在一个ListView的每个ListItem中放入另外一个ListView.但刚开始的时候,会发现放入的小ListView会显示不完全,它的高度始终有问题.上网查了下,发现别人也有遇到这样的问题,而大多数人都不推荐这样的设计,因为默认情况下Android是禁止在ScrollView中放入另外的ScrollView的,它的高度是无法计算的. 又搜索了一下,发现有StackOverflow上的牛人已经解决了这个问题,经过

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

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

解决ScrollView中嵌套ListView滚动效果冲突问题

在ScrollView中嵌套使用ListView,ListView只会显示一行到两行的数据.起初我以为是样式的问题,一直在对XML文件的样 式进行尝试性设置,但始终得不到想要的效果.后来在网上查了查,ScrollView和ListView两个View都有滚动的效果,在嵌套使用时起了冲 突,一般不建议两者套用. 下面说说具体解决方案.方案的主要思路就是根据ListView子项重置其高度. 解决方案代码如下: java代码: [html] view plain copy print? /** * 重

ScrollView中嵌套ListView显示

想要ScrollView中嵌套显示ListView 需要自定义ListView 并重写onMeasure方法 重新计算  heightMeasureSpec的高度 int newHeight = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST); 返回新的高度 super.onMeasure(widthMeasureSpec, newhight); 代码如下: 自定义的ListView xml布局文件,S

解决:ScrollView中嵌套ListView,使得listview上下滑动卡顿现象

效果图就是上面的那样!实现方式:上面是一个ViewPager实现的左右无限循环并带有自动轮播的banner.在banner图的下面是一个listview实现上拉加载的功能:但是在我实现的过程中我遇到了一个问题,就是整个页面的展示效果都已经实现,但是banner图连带下面的listview在上下滑动的时候出现卡顿的现象:当然之前也遇到了一个问题,就是我的banner图和listview一起放在了父控件ScrollView中,是的listview不能完全显示:那么就来解决这两个问题. 解决问题一:<

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

一起学android之解决在scrollview中嵌套ListView切换界面时scrollview整体向下滑动(31)

有时候我们在scrollview中会嵌套ListView,在嵌套ListView(ListView上面还有一些控件)后,切换Activity时会发现整个 scrollview 想下滑动直到ListView置顶了,而上面的控件无法显示时,我们可以这样做: 将图中的View放在顶部,最后在代码中这样做: view.setFocusable(true); view.setFocusableInTouchMode(true); view.requestFocus(); 通过setFocusable和se