• (源码)自己写的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也可以滑动,只能强行截取滑动事件,有牛人在论坛中发过代码说可以。虽然我没有亲自试过,但估计是可行的。 
    ------------------------------------------------------------- 

    Java代码  收藏代码
    1. 在listview.setAdapter()之后调用Utility.setListViewHeightBasedOnChilren(listview)就Okay 了。     
    2. public class Utility {     
    3. public static void setListViewHeightBasedOnChildren(ListView listView) {     
    4. //获取ListView对应的Adapter     
    5. ListAdapter listAdapter = listView.getAdapter();      
    6. if (listAdapter == null) {     
    7. // pre-condition     
    8. return;     
    9. }     
    10.     
    11. int totalHeight = 0;     
    12. for (int i = 0, len = listAdapter.getCount(); i < len; i++) { //listAdapter.getCount()返回数据项的数目     
    13. View listItem = listAdapter.getView(i, null, listView);     
    14. listItem.measure(00); //计算子项View 的宽高     
    15. totalHeight += listItem.getMeasuredHeight(); //统计所有子项的总高度     
    16. }     
    17.     
    18. ViewGroup.LayoutParams params = listView.getLayoutParams();     
    19. params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));     
    20. //listView.getDividerHeight()获取子项间分隔符占用的高度     
    21. //params.height最后得到整个ListView完整显示需要的高度     
    22. listView.setLayoutParams(params);     
    23. }     
    24. }    



    Java代码  收藏代码
    1. Listview其他属性  
    2. 1.去滑动到顶点和底边时的黑色阴影  
    3. [html] view plaincopy  
    4. android:fadingEdge="none"    
    5.   
    6. 2.去拖动时默认黑色底色  
    7. [html] view plaincopy  
    8. android:cacheColorHint=“#00000000”    
    9.   
    10. 3.去选中时的黄色底色  
    11. [html] view plaincopy  
    12. android:listSelector="#00000000"    



    Java代码  收藏代码
    1. <ListView  
    2.             android:id="@+id/roundlistview01" android:layout_width="fill_parent"  
    3.             android:layout_height="wrap_content" android:background="@drawable/shape"  
    4.             android:cacheColorHint="#00000000" android:drawSelectorOnTop="false"  
    5.             android:fadingEdge="none" android:listSelector="#00000000"  
    6.             android:layout_marginLeft="10dip" android:layout_marginRight="10dip">  
    7.         </ListView>  




    圆角android:background="@drawable/shape": 
    shape.xml 

    Java代码  收藏代码
    1. <?xml version="1.0" encoding="utf-8"?>   
    2. <shape xmlns:android="http://schemas.android.com/apk/res/android">  
    3.  <!-- 实心  透明色  
    4.  <solid android:color="#FFFFFF"/>  
    5.  -->  
    6.      <gradient android:startColor="#F0F0F0"    
    7.         android:endColor="#F0F0F0"    
    8.          android:angle="90" />  
    9.      <stroke  
    10.          android:width="2dp"  
    11.          android:color="#6C6C6C"  />  
    12.      <corners  
    13.          android:radius="10dip" />  
    14.      <padding  
    15.          android:left="0dp"  
    16.          android:top="0dp"  
    17.          android:right="0dp"  
    18.          android:bottom="0dp" />  
    19. </shape>  




    源代码:下载地址1:http://dl.iteye.com/topics/download/8bb55721-9bda-3271-ac3d-576a78e22624 

    路漫漫其修远兮 吾将上下而求索
  • 相关阅读:
    8年开发大佬告诉你:看懂英文文档,每天只需要10分钟做这件事……
    扫雷与算法:如何随机化的布雷(二)之洗牌算法
    推荐一个项目:数据结构和算法必知必会的 50 个代码实现
    你知道什么是漂亮排序法吗?哦,知道,不就是臭皮匠排序法嘛!
    什么是漂亮排序算法:一顿操作很装逼,一看性能二点七
    什么是哈希洪水攻击(HashFlooding Attack)?
    五分钟了解一下什么是「贪心算法 」
    高考前一天,六月六号,加一!
    毕业十年后,我忍不住出了一份程序员的高考试卷
    二分查找算法详解
  • 原文地址:https://www.cnblogs.com/hudabing/p/3210011.html
Copyright © 2020-2023  润新知