android实现两个listview的同步滚动
来源:互联网 发布:淘宝联盟app怎么返利 编辑:程序博客网 时间:2024/06/05 06:06
在开发的过程中看到项目有实现两个listview同步滚动的效果,所以就希望跟大家分享一下!!
不用说大家可能也想到在listview的onScrollListener中做一些操作,
现在具体的细节如下:
01
public
void
setListViewOnTouchAndScrollListener(
final
ListView listView1,
final
ListView listView2){
02
03
04
//设置listview2列表的scroll监听,用于滑动过程中左右不同步时校正
05
listView2.setOnScrollListener(
new
OnScrollListener() {
06
07
@Override
08
public
void
onScrollStateChanged(AbsListView view,
int
scrollState) {
09
//如果停止滑动
10
if
(scrollState ==
0
|| scrollState ==
1
){
11
//获得第一个子view
12
View subView = view.getChildAt(
0
);
13
14
if
(subView !=
null
){
15
final
int
top = subView.getTop();
16
final
int
top1 = listView1.getChildAt(
0
).getTop();
17
final
int
position = view.getFirstVisiblePosition();
18
19
//如果两个首个显示的子view高度不等
20
if
(top != top1){
21
listView1.setSelectionFromTop(position, top);
22
}
23
}
24
}
25
26
}
27
28
public
void
onScroll(AbsListView view,
final
int
firstVisibleItem,
29
int
visibleItemCount,
int
totalItemCount) {
30
View subView = view.getChildAt(
0
);
31
if
(subView !=
null
){
32
final
int
top = subView.getTop();
33
34
// //如果两个首个显示的子view高度不等
35
int
top1 = listView1.getChildAt(
0
).getTop();
36
if
(!(top1 -
7
< top &&top < top1 +
7
)){
37
listView1.setSelectionFromTop(firstVisibleItem, top);
38
listView2.setSelectionFromTop(firstVisibleItem, top);
39
}
40
41
}
42
}
43
});
44
45
//设置listview1列表的scroll监听,用于滑动过程中左右不同步时校正
46
listView1.setOnScrollListener(
new
OnScrollListener() {
47
48
@Override
49
public
void
onScrollStateChanged(AbsListView view,
int
scrollState) {
50
if
(scrollState ==
0
|| scrollState ==
1
){
51
//获得第一个子view
52
View subView = view.getChildAt(
0
);
53
54
if
(subView !=
null
){
55
final
int
top = subView.getTop();
56
final
int
top1 = listView2.getChildAt(
0
).getTop();
57
final
int
position = view.getFirstVisiblePosition();
58
59
//如果两个首个显示的子view高度不等
60
if
(top != top1){
61
listView1.setSelectionFromTop(position, top);
62
listView2.setSelectionFromTop(position, top);
63
}
64
}
65
}
66
}
67
68
@Override
69
public
void
onScroll(AbsListView view,
final
int
firstVisibleItem,
70
int
visibleItemCount,
int
totalItemCount) {
71
View subView = view.getChildAt(
0
);
72
if
(subView !=
null
){
73
final
int
top = subView.getTop();
74
listView1.setSelectionFromTop(firstVisibleItem, top);
75
listView2.setSelectionFromTop(firstVisibleItem, top);
76
77
}
78
}
79
});
80
}
0 0
- 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
- Java虚拟机 - 体系结构 内存模型
- TCP\IP三次握手连接,四次握手断开分析
- 五大主流数据库模型
- 在64位Win8.1安装32位Oracle11g并且安装了32位的客户端之后连接PL/SQL成功
- 笔试题及解释
- android实现两个listview的同步滚动
- Python私有方法不能外部调用怎么理解?
- vim插件系列之NERDTree
- Java虚拟机 - 对象访问
- 十步配置ODBC数据源
- java中的字符串问题!
- error LNK2001: unresolved external symbol _WSCWriteProviderOrder@8
- 无法启动 SQL Server (MSSQLSERVER)
- java的一些处理错误的常识!