笔记68--继续ListView和GridView1

一、去掉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);




你可能感兴趣的:(笔记68--继续ListView和GridView1)