ListView與ScrollView衝突解決方法

2021-07-11 18:42:38 字數 2178 閱讀 2689

眾所周知listview與scrollview都具有滾動能力,對於這樣的view控制項,當scrollview與listview相互巢狀會成為一種問題:

問題一:scrollview與listview巢狀導致listview顯示不全面

問題二:scrollview不能正常滑動

解決方式一:

scrollview+linearlayout+listview可以換成scrollview+linearlayout+linearlayout,對於開發中,scrollview所能滾動的樣式形式各異,另外的話,scrollview所顯示的內容肯定不會太多,因此這種方案是合理而且可選的

解決方式二:

同樣是替換:listview具有headerview與footerview2部分,因此,在非下拉重新整理,上拉載入的需求中,完全可以使用listview來代替scrollview,因此是合理可選的方案

解決方式三:

主動計算和設定listview的高度,這樣的結果最終得出類似解決方案一效果,具體來說缺點是大材小用,但也是合理的解決辦法。

public

class

utility 

int totalheight = 0;

for (int i = 0; i < listadapter.getcount(); i++) 

viewgroup.layoutparams params = listview.getlayoutparams();

params.height = totalheight + (listview.getdividerheight() * (listadapter.getcount() - 1));

listview.setlayoutparams(params);

}}

解決方式四:

複寫scrollview,從事件方向進行處理,缺點是靈活性不夠好

public

class

listscrollview

extends

scrollview

private

int downy = 0;

private

int movey = 0;

@override

public

boolean

dispatchtouchevent

(motionevent ev)

else 

break;

case motionevent.action_up:

default:

break;

}  return

super.dispatchtouchevent(ev);

} @override

public

boolean

onintercepttouchevent

(motionevent ev)

if(( (listview.getfirstvisibleposition() == 0) && (glidestate == downglide))) 

return

false; //讓子控制項直接處理

}}  return

super.onintercepttouchevent(ev);

} @override

public

boolean

ontouchevent

(motionevent ev)  

private

void

findalllistview

(view view)

}if (view instanceof listview) 

} }@override

protected

void

ondraw

(canvas canvas)

@override

protected

void

onlayout

(boolean changed, int l, int t, int r, int b)

catch (scrollexception e) 

}  list.clear();

findalllistview(this.getchildat(0));

}}

游標查詢scroll

scroll查詢 可以用來對 elasticsearch 有效地執行大批量的文件查詢,而又不用付出深度分頁那種代價。游標查詢允許我們 先做查詢初始化,然後再批量地拉取結果。這有點兒像傳統資料庫中的 cursor 游標查詢會取某個時間點的快照資料。查詢初始化之後索引上的任何變化會被它忽略。它通過儲存舊...

scroll事件詳解

以前眼高手低,不夠紮實,面試的時候總是處理過,卻想不出來細節,這次開始慢慢整理,蝸牛繼續爬坡 一般情況下,如果出現內容大於瀏覽器的時候,需要新增樣式 overflow scroll 關於scroll的樣式有以下可以根據需求調整 滾動條的設定 1.webkit scrollbar 滾動條整體部分,可以...

scroll家族屬性

首先,scroll家族包括4個屬性 接下來,我們先簡單看一下相關屬性。例1 doctype html html lang en head meta charset utf 8 title title style body style head body script type text html c...