ScrollView中添加ListView

<p>1.要点一:去除ListView的scrollBar,添加ScrollView的scrollBar:</p>  
<ScrollView android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:scrollbars="vertical">
       <LinearLayout android:orientation="vertical"
                     android:layout_width="fill_parent"
                     android:layout_height="wrap_content">
            <LinearLayout android:layout_width="fill_parent"
                          android:layout_height="wrap_content"
                          android:orientation="horizontal"
                          android:paddingLeft="5dp" android:paddingRight="5dp"
                          android:paddingTop="6dp" android:paddingBottom="6dp"                           

android:background="@color/LightSteelBlue1">

                 <TextView android:id="@+id/text" android:text="列表如下:"
                           android:layout_width="wrap_content"  android:layout_height="wrap_content"                

            android:textColor="@color/White" android:layout_marginLeft="10dp"                                       

            android:gravity="center_horizontal"
                           android:paddingTop="5dp" android:paddingBottom="5dp" android:clickable="true"/>
           </LinearLayout>
           <ListView android:id="@+id/list_alarm" android:layout_width="fill_parent"
                     android:layout_height="wrap_content" android:layout_weight="1"
                     android:cacheColorHint="@color/LightCyan2" android:scrollbars="none"/>
      </LinearLayout>
</ScrollView>

2.要点二:(设置ListView的高度,否则只能显示1-2行)

在setAdapter之后,在设置ListView的高度(不是wrap_content),其高度 = 每行高度 * 行数 + 行间距 * (行数 - 1),用ViewGroup.LayoutParams 设置ListView 的高度

private void setAdapter(){
        ArrayAdapter<String> adapter = new ArrayAdapter<String>

(MainActivity.this,android.R.layout.simple_list_item_1,listSource);
        mListView.setAdapter(adapter);
        setLvHeight();
    }

    private void setLvHeight(){
        ListAdapter adapter = mListView.getAdapter();
        if(adapter == null){
            ShowLog.d(TAG, "no data in ListView");
            return;
        }
        int totalHeight = 0;
        for(int i = 0;i < adapter.getCount(); i++){
            View itemView = adapter.getView(i, null, mListView);
            itemView.measure(0, 0);
            totalHeight += itemView.getMeasuredHeight();
        }
        ViewGroup.LayoutParams layoutParams = mListView.getLayoutParams();
        layoutParams.height = totalHeight + (mListView.getDividerHeight() * (adapter.getCount() - 1));//总行高+每行的间距
        mListView_Alarm.setLayoutParams(layoutParams);
    }
时间: 2024-11-08 11:54:03

ScrollView中添加ListView的相关文章

解决在ScrollView中套用ListView显示不正常

最近在设计Android程序时,因为需要在ScrollView中添加一个ListView列表来显示一些信息.刚开始并没有想太多,但添加进去后才发现ListView不论怎样定义都只能显示一行,显示效果很不正常. 后来在网上查了一下才知道,原因是ScrollView和ListView默认都带有滚动条,所以一起使用就会引起冲突.但因为程序中我必须要添加一个ListView,且不想取消外层的ScrollView(想保证用户在程序页面能够上下滑动来浏览更多内容),经过查询找到了解决此问题的方法. 下面记录

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

[转载]Android: 如何实现ScrollView中含有ListView?

原文地址:Android: 如何实现ScrollView中含有ListView?作者:mailofzxf ListView本身就含有ScrollView,因此把ListView放到ScrollView中会引起混乱(谁来响应滑动事件?)但有时又确有此需求,以实现ListView的内容连同其他内容的滚动. 要想把ListView嵌入ScrollView,有二个方法: 方法1:整体上使用一个ListView, 把不需滚动的部分放入ListView的Header或Footer中.注意: 一定要先添加He

笔记整理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的,它的高度是无法计

ScrollView中添加一个android:fillViewport=&quot;true&quot;(转)

http://www.2cto.com/kf/201208/148262.html ScrollView中的组件设置android:layout_height="fill_parent"不起作用的解决办法 在ScrollView中添加一个android:fillViewport="true"属性就可以了.顾名思义,这个属性允许 ScrollView中的组件去充满它. 例子,在ScrollView下加入的组件,无论如何也不能自动扩展到屏幕高度. 布局文件. [html

Aandroid在ViewPager中添加ListView

最近的项目中碰到一个需要横竖都能滑动的页面效果,如同手机qq的好友菜单界面(如下图),可以通过选项卡来选择需要的界面,也可以通过屏幕手指的滑动来实现,而每一个分页面的内容对应的是一个可以上下滑动的ListView,所以最后结合起来的效果是,在页面中可以上下滑动,在各个分页之间可以左右滑动. 对于这个效果有两种方案,一种是通过TabActivitiy来实现,将选项卡设置为TabActibitiy的标志,通过将需要的分页加载到Tab的各个标志中去,但是这种方法,由于每一次切换选项卡的时候都会重新去创

Android -- 在ScrollView中嵌套ListView

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