`

(源码)自己写的ScrollView里套漂亮的圆角listview(算是漂亮吧。。。)

阅读更多



找了相关的资料终于写完了:
http://blog.csdn.net/jamin0107/article/details/6973845

http://emmet1988.iteye.com/blog/1097443


原来在scrollview中套listview需要将listview的高度固定
,这里就需要将listview的子类高度计算

同时还要注意子ListView的每个Item必须是LinearLayout


“引用连接中的话”------------------------------------------------------
只要在设置ListView的Adapter后调用此静态方法即可让ListView正确的显示在其父ListView的ListItem中。但是要注意的是,子ListView的每个Item必须是LinearLayout,不能是其他的,因为其他的Layout(如RelativeLayout)没有重写onMeasure(),所以会在onMeasure()时抛出异常。
  在ScrollView中嵌套ListView(或者ScrollView)的另外一个问题就是,子ScrollView中无法滑动的(如果它没有显示完全的话),因为滑动事件会被父ScrollView吃掉,如果想要让子ScrollView也可以滑动,只能强行截取滑动事件,有牛人在论坛中发过代码说可以。虽然我没有亲自试过,但估计是可行的。
-------------------------------------------------------------
在listview.setAdapter()之后调用Utility.setListViewHeightBasedOnChilren(listview)就Okay 了。   
public class Utility {   
public static void setListViewHeightBasedOnChildren(ListView listView) {   
//获取ListView对应的Adapter   
ListAdapter listAdapter = listView.getAdapter();    
if (listAdapter == null) {   
// pre-condition   
return;   
}   
  
int totalHeight = 0;   
for (int i = 0, len = listAdapter.getCount(); i < len; i++) { //listAdapter.getCount()返回数据项的数目   
View listItem = listAdapter.getView(i, null, listView);   
listItem.measure(0, 0); //计算子项View 的宽高   
totalHeight += listItem.getMeasuredHeight(); //统计所有子项的总高度   
}   
  
ViewGroup.LayoutParams params = listView.getLayoutParams();   
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));   
//listView.getDividerHeight()获取子项间分隔符占用的高度   
//params.height最后得到整个ListView完整显示需要的高度   
listView.setLayoutParams(params);   
}   
}  


Listview其他属性
1.去滑动到顶点和底边时的黑色阴影
[html] view plaincopy
android:fadingEdge="none"  

2.去拖动时默认黑色底色
[html] view plaincopy
android:cacheColorHint=“#00000000”  

3.去选中时的黄色底色
[html] view plaincopy
android:listSelector="#00000000"  


<ListView
			android:id="@+id/roundlistview01" android:layout_width="fill_parent"
			android:layout_height="wrap_content" android:background="@drawable/shape"
			android:cacheColorHint="#00000000" android:drawSelectorOnTop="false"
			android:fadingEdge="none" android:listSelector="#00000000"
			android:layout_marginLeft="10dip" android:layout_marginRight="10dip">
		</ListView>



圆角android:background="@drawable/shape":
shape.xml
<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android">
 <!-- 实心  透明色
 <solid android:color="#FFFFFF"/>
 -->
     <gradient android:startColor="#F0F0F0"  
        android:endColor="#F0F0F0"  
         android:angle="90" />
     <stroke
         android:width="2dp"
         android:color="#6C6C6C"  />
     <corners
         android:radius="10dip" />
     <padding
         android:left="0dp"
         android:top="0dp"
         android:right="0dp"
         android:bottom="0dp" />
</shape>



源代码:下载地址1:http://dl.iteye.com/topics/download/8bb55721-9bda-3271-ac3d-576a78e22624
分享到:
评论
3 楼 yurixinge2 2014-09-24  
漂亮,鉴定完毕。
2 楼 chenhailong 2013-06-06  
很漂亮啊 哈哈
1 楼 BensonLim 2013-05-21  
SB!!!

相关推荐

    经典ScrollView嵌套ListView和ScrollView

    很多朋友因项目需求问题需要在ScrollView中嵌套使用ListView或ScrollView 但是彼此的滑动事件会发生冲突,网上大多数都是计算ListView的高度来解决这个问题,但个人亲手尝试 结果ListView的Item要是过多的话ListView...

    Node.js-scrollView包含listview解决listview数据加载不出来的问题

    通过查看源码,我们可以学习如何正确地处理ListView和ScrollView的嵌套问题,以及如何实现高效的数据加载。 总之,处理ScrollView包含ListView的问题,关键在于理解两者的工作原理并找到合适的替代方案,以保持良好...

    android listview ScrollView冲突 listview checkbox

    在Android开发中,ListView与ScrollView的使用经常会产生冲突,因为两者都是用来展示多行数据的控件,但它们的工作机制有所不同。ListView通过复用Item视图来提高性能,而ScrollView则将所有子视图一次性加载到内存...

    安卓Android源码——下拉刷新控件(ListView好ScrollView版).rar

    这个压缩包文件“安卓Android源码——下拉刷新控件(ListView好ScrollView版).rar”包含了实现这一功能的具体源代码,适用于ListView和ScrollView这两种常见的滚动视图。以下是对这个主题的详细讲解: 1. **下拉...

    Android应用源码下拉刷新控件(ListView好ScrollView版)-IT计算机-毕业设计.zip

    这个压缩包内的源码不仅可以帮助初学者学习如何在ListView和ScrollView中实现下拉刷新,还可以扩展到其他相关的Android开发技术,如数据持久化、网络请求、异步任务等。通过对这些源码的学习和分析,开发者可以加深...

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

    在Android开发中,ScrollView和ListView都是非常常见的控件。ScrollView是一个可滚动的视图容器,它可以包含一个或多个视图,并允许用户上下滑动查看内容。而ListView则是一个用于展示长列表的视图,通常用于显示...

    ScrollView GradView ListView 嵌套滑动冲突、item内容显示不全

    当一个ScrollView内嵌有GridView或ListView时,两者都有自己的滚动机制。默认情况下,Android系统可能会混淆这些滚动事件,导致滚动行为混乱,用户体验下降。解决这个问题的关键在于合理地处理滑动事件。 1. 滑动...

    有弹性的ScrollView&ListView&HorizontalScrollView

    在Android开发中,ScrollView、ListView和HorizontalScrollView是常用的布局组件,它们允许用户滚动查看超过屏幕范围的内容。这篇博文“有弹性的ScrollView&ListView&HorizontalScrollView”似乎探讨了如何为这些...

    Android仿小米商城商品详情界面UI,ScrollView嵌套ScrollView、WebView、ListView

    这个项目名为"MoreScrollDemo",旨在实现一个复杂的滚动布局,它涉及到ScrollView的多层嵌套,以及WebView和ListView的集成。让我们深入探讨如何实现这样的功能。 首先,ScrollView是Android中的一个视图容器,允许...

    scrollview与listview共存

    在Android开发中,ScrollView和ListView是两种常用的布局组件,它们各自有着特定的使用场景。当需要在一个界面中同时展示大量可滚动的内容,并且部分区域需要自定义滑动行为时,可能会遇到将ScrollView与ListView...

    Android 支持ListView,GridView以及ScrollView上拉下拉控件源码以及Demo

    在Android开发中,ListView、GridView和ScrollView是常用的布局控件,用于展示大量数据或实现滚动效果。本资源提供了这些控件实现上拉下拉功能的源码和Demo,有助于开发者深入理解其工作原理并实现在自己的应用中。...

    android ScrollView和ListView固定底部

    在Android开发中,ScrollView和ListView是两种常用的布局控件,它们各自有特定的用途,但有时在实际应用中,我们可能需要将它们结合使用,以实现特定的界面效果,比如在滚动时保持底部元素固定可见。这篇博文主要...

    解决ScrollView中嵌套ListView的冲突示例

    ScrollView设计为全屏滚动,而ListView内部有自己的滚动机制。当它们同时存在时,系统不知道应该响应哪个组件的滚动事件,因此可能会导致滚动不流畅或者无法滚动。 解决这个问题的一种常见方法是创建一个自定义的...

    ScrollView嵌套ListView滑动冲突的解决方案

    1. **自定义ListView**:修改ListView的源码,使其在被嵌套在ScrollView中时,只响应垂直滑动,忽略水平滑动。通过重写`onInterceptTouchEvent`和`onTouchEvent`方法,根据MotionEvent的动作类型判断是否应该拦截...

    scrollview例子

    ListView内部有自己的滚动机制,因此当ScrollView和ListView结合时,可能会出现滚动冲突,即两个组件都在尝试控制滚动行为。为了解决这个问题,我们需要确保ListView占据足够的高度,使得ScrollView不必处理ListView...

    listview源码

    如果ListView需要与其他可滚动视图(如ScrollView)一起使用,需要处理好嵌套滚动的逻辑,避免冲突。 通过以上内容,我们可以了解到ListView在Android应用开发中的重要性和使用技巧,以及如何通过源码分析来优化其...

    android ScrollView,ListView 截屏并保存到图库

    在Android开发中,有时我们需要实现一个功能,即用户可以截取ScrollView或ListView的内容,并将截图保存到设备的图库中。这个过程涉及到多个技术点,包括屏幕截图、滚动视图内容捕获、图像处理以及与系统图库的交互...

    应用源码下拉刷新控件(ListView好ScrollView版).zip

    本资料提供的"应用源码下拉刷新控件(ListView好ScrollView版)"是一个示例项目,旨在帮助开发者理解和实现这种功能。 首先,下拉刷新功能的实现主要依赖于Android的SwipeRefreshLayout组件。SwipeRefreshLayout是...

    【计算机专业-Andorid项目源码100套之】Android下拉刷新控件(ListView好ScrollView版)

    本项目源码集合是针对计算机专业的Android开发者,包含100个不同的Android项目实例,其中一个是专门针对下拉刷新功能的实现,特别是在ListView和ScrollView中的应用。这个项目模仿了类似蘑菇街和迷尚应用程序的布局...

    Android应用源码下拉刷新控件(ListView好ScrollView版).zip

    这个压缩包提供的源码着重于如何在ListView和ScrollView中实现下拉刷新功能,这对于我们理解Android UI交互机制以及自定义View的开发具有重要的学习价值。 首先,我们要了解下拉刷新的基本概念。下拉刷新是一种用户...

Global site tag (gtag.js) - Google Analytics