1
我有一個帶有ListView和自定義視圖的RelativeLayout。我以編程方式將自定義視圖的大小設置爲ListView的大小。所以我有兩個相同大小的ListView頂部的自定義視圖。很顯然,ListView不會滾動,因爲onTouchListener位於customView上。我怎樣才能讓兩者同時滾動?ListView滾動的同時滾動視圖
我有一個帶有ListView和自定義視圖的RelativeLayout。我以編程方式將自定義視圖的大小設置爲ListView的大小。所以我有兩個相同大小的ListView頂部的自定義視圖。很顯然,ListView不會滾動,因爲onTouchListener位於customView上。我怎樣才能讓兩者同時滾動?ListView滾動的同時滾動視圖
最後,我在ListView和行數作爲參數的自定義視圖類中創建了一個函數。在視圖中,我將setOnScrollListener設置爲ListView,並在滾動到自定義視圖的全局滾動變量時指定ListView的位置。像這樣
public void setListView(final TwoWayView listView, int totalListRows) {
totalColumns = totalListRows;
for (int i = 0; i < totalColumns; i++) {
listViewItemHeights.put(i, (int) getResources().getDimension(R.dimen.column_width));
}
listView.setOnScrollListener(new TwoWayView.OnScrollListener() {
@Override
public void onScrollStateChanged(TwoWayView view, int scrollState) {
}
@Override
public void onScroll(TwoWayView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
c = listView.getChildAt(0);
if (c != null) {
int oldScrollX = scrollX;
scrollX = -c.getLeft();
for (int i = 0; i < listView.getFirstVisiblePosition(); ++i) {
if (listViewItemHeights.get(i) != null) {
scrollX += listViewItemHeights.get(i);
}
}
scrollBy(scrollX - oldScrollX, 0);
}
}
});
}
我認爲有一個屬性可以讓視圖忽略所有觸摸事件,不可聚焦?我不記得確切的名字,但看看文檔 – Machinarius 2015-04-03 15:38:19
在* onTouch()*方法返回false,將事件傳遞給ListView – Rami 2015-04-03 15:39:38
我不想ingore所有的觸摸事件,我想使這兩個,當用戶嘗試滾動列表視圖的同時,listview和我的自定義視圖滾動。 – belen 2015-04-03 15:40:58