`
Jason_WKS
  • 浏览: 4177 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

ScrollView中添加ListView

阅读更多

 

1.要点一:去除ListView的scrollBar,添加ScrollView的scrollBar:

<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);
	}
分享到:
评论
1 楼 40862652 2012-03-07  
[/b][b][i][/i][u][/u]
引用

    [*]
[url][/url]
[flash=200,200][/flash]

相关推荐

    ScrollView中嵌套Listview(两个)

    3. **使用HeadView和FootView**:在ListView中添加HeadView和FootView,模拟ScrollView的效果。将需要在ScrollView中显示的内容作为ListView的头尾视图,然后让ListView中的其他内容滚动。但这种方法可能不适用于...

    ScrollView中自定义ListView

    4. 在ScrollView中添加自定义的ListView,并确保内容填充到ListView中。 通过这种方式,我们自定义的ListView可以在ScrollView中正常工作,既保留了ListView的滚动优化,又解决了与ScrollView的冲突问题。在实际...

    ScrollView中嵌套ListView的例子

    最后,如果ListView中的数据量仍然很大,为了优化性能,可以考虑使用RecyclerView替换ListView。RecyclerView提供了更多的自定义选项和更好的性能,特别是在大数据集的情况下。 总结,处理ScrollView中嵌套ListView...

    ScrollView中嵌入ListView的例子

    在这种情况下,我们可能会尝试在ScrollView中嵌入一个ListView。ScrollView是一个可滚动的视图容器,它允许用户通过滑动来查看超出屏幕范围的内容,而ListView则是一个用于展示大量数据的可滚动视图,每个条目通常由...

    ScrollView中嵌套listview

    在ListView中,你需要确保在手指离开屏幕时将滑动事件传递回ScrollView。 ```java public class CustomScrollView extends ScrollView { // ... @Override public boolean onInterceptTouchEvent(MotionEvent ev...

    ScrollView,嵌套ListView,ListView并同时嵌套GridView

    4. 使用Headerview和Footerview:如果只是在ListView的顶部或底部需要添加ScrollView,可以考虑将ScrollView作为ListView的Headerview或Footerview。 5. 考虑使用其他布局管理器:如RecyclerView,它提供了更灵活的...

    嵌套ListView的ScrollView实现上拉和下拉

    - 在ScrollView中添加ListView,并确保ListView的`android:nestedScrollingEnabled="true"`属性设置为true。 - 实现自定义的ScrollView,可能需要重写`onInterceptTouchEvent`和`onTouchEvent`方法,以便正确处理...

    Android ScrollView嵌套ListView嵌套GridView的上下拉以及加载更多

    在ListView中,我们可以在数据达到一定数量或者到底部时,调用addFooterView方法添加这个Footer,并在数据加载完成后移除它。对于GridView,过程类似,只是需要确保Footer视图的宽度和高度与单元格相匹配,以保持...

    listView和scrollView焦点冲突问题

    在一些项目中需要用到listview嵌套在scrollview中的情况,但会碰到焦点冲突,scrollview焦点覆盖listview造成listview不能滑动,这种情况时要在scrollview中添加android:fillViewport="true"这句,并在listview中添加 ...

    自定义ScrollView与ListView结合使用

    在Android开发中,有时我们需要在一个页面中展示大量的可滚动内容,并且这些内容可能包含多个不同类型的视图,这时就会涉及到ScrollView和ListView的结合使用。本文将深入探讨如何解决两者结合时可能出现的问题,...

    ScrollView嵌套ListVIew两者之间滑动问题

    4. **使用`HeaderView`或`FooterView`**:有时可以通过在ListView的头部或尾部添加固定高度的视图,模拟ScrollView的效果,但这种方法限制了ScrollView的灵活性。 5. **使用第三方库**:还有一些第三方库,如`...

    四种方法解决ScrollView嵌套Listview

    这种方式将ScrollView的功能合并到ListView中,避免了直接嵌套。例如: ```java View headerView = getLayoutInflater().inflate(R.layout.scrollable_header, null); listView.addHeaderView(headerView); ``` **...

    解决scrollView和listview滚动冲突,实现listview滑动到顶端和底部之后还能拖拽一定的距离,松开后返回

    可以将原始的ScrollView替换为NestedScrollView,然后直接在其中添加ListView,通常可以避免大部分冲突。 接下来,我们要实现ListView滑动到底部或顶部后还能继续拖拽一段距离,松手后自动回弹的效果。这可以通过...

    android ScrollView嵌套ListView,并且实现动态添加ListView里的Item

    本文将探讨如何解决这个问题,并实现动态添加ListView中的Item。 首先,我们来看ScrollView的基本用法。ScrollView通常用来包裹那些内容超过屏幕高度的View,如LinearLayout或RelativeLayout。它的主要属性有`...

    ScrollView嵌套ListView刷新

    5. **优化ListView**:确保ListView中的每个子项(Item)尽可能轻量级,避免在布局中包含复杂的视图层次。此外,使用ViewHolder模式可以有效减少视图的创建和销毁,提高性能。 6. **监听滑动事件**:可以通过监听...

    安卓listview相关相关-解决ScrollView里面嵌套ListVIew引起的高度和滚动问题.zip

    5. **使用Headerview和Footerview**:如果ScrollView只有一部分内容需要滚动,而ListView只是额外信息,可以考虑将ListView作为ScrollView的Headerview或Footerview添加。这样,ListView将作为ScrollView的一部分,...

    ScrollView不冲突嵌套ListView

    在实际编码过程中,我们可能需要创建一个新的类,如NestedListView,继承自ListView,并在NestedListView中添加以下代码: ```java @Override protected void onMeasure(int widthMeasureSpec, int ...

    弹性拉伸Scrollview、scrollview嵌套listview和scrollview滑动监听demo

    本文将深入探讨如何实现“弹性拉伸”的ScrollView、在ScrollView中嵌套ListView以及添加ScrollView的滑动监听。这些技巧在创建复杂的用户界面时非常实用。 首先,让我们谈谈“弹性拉伸”效果的ScrollView。这种效果...

    ScrollView+listView指定坐标

    当ListView滚动时,我们可以比较ListView的顶部项与ScrollView中的标题项,如果匹配,就更新顶部大标题的状态,如改变颜色或添加选中效果。 在实现过程中,我们还需要一个适配器(Adapter)来提供ListView的数据,...

    android listview ScrollView冲突 listview checkbox

    这篇博客"android listview ScrollView冲突 listview checkbox"探讨了如何处理这种冲突,特别是当ListView中的每一项包含一个CheckBox时。CheckBox在ListView中的应用常见于多选列表场景,用户可以通过勾选CheckBox...

Global site tag (gtag.js) - Google Analytics