listview注意事项
来源:互联网 发布:宋思明 知乎 编辑:程序博客网 时间:2024/04/27 16:30
1.设置分割线
A.
android:divider="#fffff" 分割线颜色 android:dividerHeight="1px" 分割线高度
B.在xml文件中设置
<!-- res/drawable/liner.xml -> <?xmlversionxmlversion="1.0"encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> <gradient android:startColor="#000000" android:centerColor="#CCCCCC" android:endColor="#FFFFFF" android:height="1px" android:angle="0"/> </shape> </item> </layer-list>
在布局文件中引用
android:divider="@drawable/list_divider" android:dividerHeight="1dip"
2.隐藏滚动条
android:scrollbars="none"与setVerticalScrollBarEnabled(true);
3.取消item点击效果
android:listSelector="@android:color/transparent"
4.处理空Listview
listview_lv.setEmptyView(view)
5.listview 滑动基本概念
import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.widget.AbsListView;import android.widget.AbsListView.OnScrollListener;import android.widget.ListView;import com.imooc.load.R;public class LoadListView extends ListView implements OnScrollListener { View footer;// 底部布局; int totalItemCount;// 总数量; int lastVisibleItem;// 最后一个可见的item; boolean isLoading;// 正在加载; ILoadListener iLoadListener; public LoadListView(Context context) { super(context); // TODO Auto-generated constructor stub initView(context); } public LoadListView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub initView(context); } public LoadListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // TODO Auto-generated constructor stub initView(context); } /** * 添加底部加载提示布局到listview * * @param context */ private void initView(Context context) { LayoutInflater inflater = LayoutInflater.from(context); footer = inflater.inflate(R.layout.footer_layout, null); footer.findViewById(R.id.load_layout).setVisibility(View.GONE); this.addFooterView(footer); this.setOnScrollListener(this); } /* * firstVisibleItem 当前第一个能看见的item id(从0开始) * 滑动到底部 * if(firstVisibleItem+visibleItemCount=totalItemCount&&visibleItemCount>0) * 判断滚动方向 * if(firstVisibleItem>lastVisibleItemPosition){ * 上滑 * }else{ * 下滑 * } *通过一个成员变量lastVisibleItemPosition 来记录第一个可视的Item的ID并于当 *前的id进行比较 * lastVisibleItemPosition =firstVisibleItem; */ @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { // TODO Auto-generated method stub this.lastVisibleItem = firstVisibleItem + visibleItemCount; this.totalItemCount = totalItemCount; } /** * 当用户没有做手势抛动的状态时,这个方法会调用2次,否则会调用3次 o * nScrollStateChanged 三种状态 8 * * SCROLL_STATE_TOUCH_SCROLL 正在滚动 SCROLL_STATE_FLING 手指用力滚动, * 在离开后listview * 由于惯性继续滑动的状态 * */ @Override public void onScrollStateChanged(AbsListView view, int scrollState) { // TODO Auto-generated method stub if (totalItemCount == lastVisibleItem) { Log.e("totalItemCount == lastVisibleItem", "onScrollStateChanged"); } if (totalItemCount == lastVisibleItem && scrollState == SCROLL_STATE_IDLE) { if (!isLoading) { isLoading = true; footer.findViewById(R.id.load_layout).setVisibility( View.VISIBLE); // 加载更多 iLoadListener.onLoad(); } } } /** * 加载完毕 */ public void loadComplete() { isLoading = false; footer.findViewById(R.id.load_layout).setVisibility(View.GONE); } public void setInterface(ILoadListener iLoadListener) { this.iLoadListener = iLoadListener; } // 加载更多数据的回调接口 public interface ILoadListener { public void onLoad(); } @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); }}
6.获取当前可视最后、第一个Item位置
// 获取可视区域内最后一个item的Id getLastVisiblePosition();// 获取可视区域内的第一个Item的id getFirstVisiblePosition();
7.android:fastScrollEnabled=”true”
意:默认只有当ListView的内容大于4页时,才会显示快速滑动块。类似的微信通讯录右侧边 字母快速滑动,原理应该类似。详解文章
0 0
- listview注意事项
- Android ListView注意事项
- Android ListView动画注意事项
- android ListView注意事项
- listView addfootView 注意事项
- listview header 注意事项
- 关于ListView的注意事项
- Android自定义ListView注意事项
- android ListView使用注意事项
- android中ListView注意事项
- 关于listview注意事项
- ListView使用注意事项
- ListView应该注意事项
- ListView setAdapter注意事项
- ListView 开发注意事项
- 使用listview注意事项
- listView与recycleview注意事项
- C#中listview使用注意事项
- 第十六周项目1(2)——快速排序
- typedef 函数指针的用法
- 使用Spark批量上传图片到HBase中并同时使用OpenCV提取SIFT特征值
- codeforces 735 D. Taxes (三素数||哥德巴赫猜想)
- iOS 解决textField被键盘挡住的问题的方法有三个:
- listview注意事项
- matlab
- Android属性动画(PropertyAnimation)
- 第十六周 结构体复数计算
- Unity_太阳月亮地球的自转公转脚本
- java 详解接口、继承和多态
- 信号与系统:卷积
- 面试题积累篇-简单算法(二)
- DNA序列找出GC比例最高的子串