一、去掉ListView默认的黑线

1、listView.setDividerHeight(0);

2、this.getListView().setDivider(null);

3、android:divider="@null"


android:cacheColorHint="#00000000",设置其为透明,默认为黑色。

二、记录和回复ListView的位置

1、记录ListView滚动到的位置的坐标,然后利用ListView.scrollTo精确的进行恢复

listView.setOnScrollListener(new OnScrollListener() {   /**   * 滚动状态改变时调用   */  @Override  public void onScrollStateChanged(AbsListView view, int scrollState) {   // 不滚动时保存当前滚动到的位置   if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {   if (currentMenuInfo != null) {   scrolledX = statusListView.getScrollX();   scrolledY = statusListView.getScrollY();   }   }   }   /**   * 滚动时调用   */  @Override  public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {   }   }); 
在恢复位置时调用

listView.scrollTo(scrolledX, scrolledY);

2、记录listview显示在屏幕上的第一个item的位置,然后利用listView.setSelection恢复(无法精确恢复到原位置,只能定位到每个item的位置)

listView.setOnScrollListener(new OnScrollListener() {         /**       * 滚动状态改变时调用       */      @Override      public void onScrollStateChanged(AbsListView view, int scrollState) {           // 不滚动时保存当前滚动到的位置           if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {               position = statusListView.getFirstVisiblePosition();           }       }         /**       * 滚动时调用       */      @Override      public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {       }   }); 

在恢复位置时调用

listView.setSelection(position);

3、通知listview的适配器数据变更

这种用于listview追加数据的情况,是保持滚动位置不变。

listDataAdapter.getDataList.addAll(newDataList());   listDataAdapter.notifyDataSetChanged();    
三、ListView常见问题
1、listview拖动时背景图片消失变成黑色背景,拖动完毕背景图片又显示出来。解决方法:android:scrollingCache="false"
2、listview的上边和下边有黑色的阴影。解决方法:android:fadingEdge="none"
3、listview的每一项之间需要设置一个图片作为间隔。解决方法:android:divider="@drawable/xx图"
四、GridView属性介绍

1、columnWidth:列宽

2、horizontalSpacing、verticalSpacing:两行/列之间的间距

3、numColumns:列数

4、stretchMode:缩放模式。android:stretchMode="columnWidth"缩放与列宽大小同步。

5、android:listSelector="#00000000"去除选中时的黄色底色。

selector用法:

首先在drawable/xx.xml文件中定义;然后引用这些xml文件,三种方式:1)在listview中设置android:listSelector="@drawable/xx.xml"2)在listview的item中设置android:background="@drawable/xx.xml";3)在java代码中使用Drawable drawable=getResources().getDrawable(xx.xml); listView.setSelector(drawable);




更多相关文章

  1. Android(安卓)Studio下添加assets目录
  2. Fragment生命周期及基本使用
  3. Android(安卓)RecyclerView +SnapHelper 实现横向滚动自动滚动到
  4. Android(安卓)sdk 25.3更新日志
  5. Android动画-概述
  6. Android(安卓)Context Menu和Options Menu菜单的区别
  7. Android(安卓)Shader着色器/渲染器
  8. 自定义Toast
  9. 2014.03.07 ——— android GridView 记录和恢复位置

随机推荐

  1. 创建Android守护进程(底层服务)
  2. Android(安卓)各版本 设置 USB 默认连接
  3. Android内核开发:理解和掌握repo工具
  4. Android(安卓)核心分析之------Android(
  5. Hero,flytouch(飞触),智器等android系统p
  6. Android之EditText特殊小技巧
  7. 手机QQ桌面2.0(Android)发布:新增主题模式
  8. Android内存管理机制之一:lowmemory kille
  9. 填坑总结:通过selector的android:state_ch
  10. Android高手进阶教程(三)之----Android(