我需要的东西就像一张有两列和动态的表。行(根据我收到的数据长度增加和减少)。目前我所做的是,我在水平线性布局中添加到listviews,所以它看起来像一个表。但问题是列表视图的滚动与其他滚动无关。我需要锁定滚动,所以如果我滚动两个将不会独立移动。
列表视图中的所有数据都是只读的(仅用于显示目的)。
可以同步滚动还是有更好的方法可以满足我的要求?
答案 0 :(得分:1)
如果要在滚动第二个列表时停止第一个列表视图滚动,反之亦然。然后将滚动列表器放入lsitviews并阻止其他列表视图滚动。这是示例
listview1.setOnScrollListener(new OnScrollListener() {
private int mLastFirstVisibleItem;
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
listview1.setEnabled(true);
listview2.setEnabled(true);
Log.i("a", "scrolling stopped...");
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
listview2.setEnabled(false);
}
});
第二个列表视图的方式相同
listview2.setOnScrollListener(new OnScrollListener() {
private int mLastFirstVisibleItem;
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
listview1.setEnabled(true);
listview2.setEnabled(true);
Log.i("a", "scrolling stopped...");
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
listview1.setEnabled(false);
}
});