android实现两个listview的同步滚动
来源:互联网 发布:和程序员有关的网名 编辑:程序博客网 时间:2024/06/03 16:15
在开发的过程中看到项目有实现两个listview同步滚动的效果,所以就希望跟大家分享一下!!
不用说大家可能也想到在listview的onScrollListener中做一些操作,
现在具体的细节如下:
public void setListViewOnTouchAndScrollListener(final ListView listView1,final ListView listView2){//设置listview2列表的scroll监听,用于滑动过程中左右不同步时校正
listView2.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
//如果停止滑动
if(scrollState == 0 || scrollState == 1){
//获得第一个子view
View subView = view.getChildAt(0);
if(subView !=null){
final int top = subView.getTop();
final int top1 = listView1.getChildAt(0).getTop();
final int position = view.getFirstVisiblePosition();
//如果两个首个显示的子view高度不等
if(top != top1){
listView1.setSelectionFromTop(position, top);
}
}
}
}
public void onScroll(AbsListView view, final int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
View subView = view.getChildAt(0);
if(subView != null){
final int top = subView.getTop();
// //如果两个首个显示的子view高度不等
int top1 = listView1.getChildAt(0).getTop();
if(!(top1 - 7 < top &&top < top1 + 7)){
listView1.setSelectionFromTop(firstVisibleItem, top);
listView2.setSelectionFromTop(firstVisibleItem, top);
}
}
}
});
//设置listview1列表的scroll监听,用于滑动过程中左右不同步时校正
listView1.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if(scrollState == 0 || scrollState == 1){
//获得第一个子view
View subView = view.getChildAt(0);
if(subView !=null){
final int top = subView.getTop();
final int top1 = listView2.getChildAt(0).getTop();
final int position = view.getFirstVisiblePosition();
//如果两个首个显示的子view高度不等
if(top != top1){
listView1.setSelectionFromTop(position, top);
listView2.setSelectionFromTop(position, top);
}
}
}
}
@Override
public void onScroll(AbsListView view, final int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
View subView = view.getChildAt(0);
if(subView != null){
final int top = subView.getTop();
listView1.setSelectionFromTop(firstVisibleItem, top);
listView2.setSelectionFromTop(firstVisibleItem, top);
}
}
});
}
- android实现两个listview的同步滚动
- android实现两个listview的同步滚动
- android两个ListView同步滚动
- Android实现两个ScrollView互相联动,同步滚动的效果
- Android实现两个ScrollView同步滚动的效果
- Android实现两个以上ScrollView同步滚动
- 两个RichTextBox同步滚动的实现
- Android之重写ScrollView实现两个ScrollView的同步滚动显示
- Android之重写ScrollView实现两个ScrollView的同步滚动显示
- 重写ScrollView实现两个ScrollView的同步滚动显示
- 重写ScrollView实现两个ScrollView的同步滚动显示
- 重写ScrollView实现两个ScrollView的同步滚动显示
- 重写ScrollView实现两个ScrollView的同步滚动显示
- android listview 的滚动
- 两个div滚动条同步简单实现
- 两个div滚动条同步简单实现
- 如何同步滚动两个相同的DataGrid
- 如何同步滚动两个相同的DataGrid
- 2013学历提升,要搞清楚几件事
- 超文本传输协议-HTTP/1.1
- 《程序猿的搬砖生活》四、新的开始
- C++标准IO-串流类
- 读《小菜编程成长记》理解三层架构的一些记录
- android实现两个listview的同步滚动
- C++标准IO-输入状态
- ubuntu中svn客户端使用
- CodeRush教程二 代码风格
- zoj 3717 - Balloon(2-SAT)
- C++标准IO-文件的操作
- Delphi中or的使用
- C++标准IO-字符串操作类
- Spring第二个程序---依赖注入