案例:ScrollView中嵌套ListView, 避免:1.ListView只显示首项,2.ScrollView会自动滚动到ListView的首项位置

1.布局文件

  1. <LinearLayout
  2. android:focusable="true"
  3. android:focusableInTouchMode="true"
  4. android:layout_width="match_parent"
  5. android:layout_height="wrap_content"
  6. android:orientation="vertical">
  7. <extra.view.MyGridView
  8. android:id="@+id/gridview"
  9. android:layout_width="match_parent"
  10. android:layout_height="wrap_content"
  11. android:horizontalSpacing="2dp"
  12. android:listSelector="#ffffff"
  13. android:numColumns="2"
  14. android:padding="2dp"
  15. android:scrollbars="none"
  16. android:verticalSpacing="2dp" />
  17. </LinearLayout>

2.自定义ListView

  1. package com.example.chechengwang.view;
  2. import android.content.Context;
  3. import android.util.AttributeSet;
  4. import android.widget.ListView;
  5. /**
  6. * 作者:余天然 on 2015/7/27 10:19
  7. * 邮箱:yutianran[email protected]
  8. * 博客:http://my.oschina.net/u/2345676/blog
  9. * 座右铭:知识来自积累,经验源于总结
  10. */
  11. public class MyListView extends ListView {
  12. public MyListView(Context context) {
  13. super(context);
  14. }
  15. public MyListView(Context context, AttributeSet attrs) {
  16. super(context, attrs);
  17. }
  18. public MyListView(Context context, AttributeSet attrs, int defStyleAttr) {
  19. super(context, attrs, defStyleAttr);
  20. }
  21. @Override
  22. public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
  23. int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
  24. MeasureSpec.AT_MOST);
  25. super.onMeasure(widthMeasureSpec, expandSpec);
  26. }
  27. }

来自为知笔记(Wiz)

时间: 2024-08-06 05:07:47

案例:ScrollView中嵌套ListView, 避免:1.ListView只显示首项,2.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中嵌套GridView,Listview的办法

按照android的标准,ScrollView中是不能嵌套具有滑动特性的View的,但是有时如果设计真的有这样做的需要,或者为了更方便简单的实现外观(比如在外在的大布局需要有滑动的特性,并且内部有类似于List的UI结构,那么ListView + Adpater的方式来实现里面的效果就很方便,算是违规抄近道的一种方式吧),有时就会不得不采用这种怪异的组合方式. 先说下这种方式如果不做特殊处理时会出现的冲突和问题: 1,在SrollView中嵌套ListView,ListView的显示会有问题,只

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

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

解决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

Android -- 在ScrollView中嵌套ListView

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

ScrollView中嵌套ScrollView或ListView并且内部ScrollView或ListView也可滑动

1.ScrollView中嵌套ScrollView并且内部ScrollView也可滑动 (1)ScrollView继承类 public class InnerScrollView extends ScrollView { Handler handler; public ScrollView parentScrollView; public InnerScrollView(Context context, AttributeSet attrs) { super(context, attrs); h

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

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

scrollview 中嵌套多个listview的最好解决办法

在scrollview中嵌套多个listview的显示问题. 只需要调用如下的方法传入listview和adapter数据即可. /** * 动态设置ListView组建的高度 */ public static void setListViewHeightBasedOnChildren(ListView listView,Adapter adapter) { Adapter listAdapter = (Adapter) listView.getAdapter(); if (listAdapte

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

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