外層使用ScroolView,內(nèi)層嵌套使用WebView來(lái)加載H5的商品詳情頁(yè)面。
但是遇到一個(gè)問(wèn)題,每次進(jìn)入Activity頁(yè)面時(shí)谊路,整個(gè)頁(yè)面起始位置并不是頂部。而是webview的頁(yè)面
類似的問(wèn)題網(wǎng)上有很多根悼,比如ScrollView和ListView嵌套也會(huì)導(dǎo)致起始位置不對(duì)的情況凶异。
親自實(shí)踐 解決辦法:
去掉焦點(diǎn),并使用descendantFocusability屬性解決焦點(diǎn)沖突挤巡。
參考:
WebView 和 ScrollView都是可以滾動(dòng)的剩彬,當(dāng)這兩個(gè)View嵌套時(shí),容易出現(xiàn)一些問(wèn)題矿卑。其中比較常見的喉恋,是嵌套在
ScrollView 中的WebView 的焦點(diǎn)問(wèn)題.
如果不做任何處理,則會(huì)出現(xiàn)WebView加載后獲得焦點(diǎn)母廷,在WebView并非占滿屏幕時(shí)點(diǎn)擊WebView內(nèi)容轻黑,ScrollView就會(huì)自動(dòng)滾動(dòng),使WebView占滿屏幕琴昆。(ListView也會(huì)出現(xiàn)類似問(wèn)題氓鄙,即使修正了高度,也會(huì)主動(dòng)獲得焦點(diǎn)业舍,使得屏幕產(chǎn)生錯(cuò)誤的滾動(dòng))抖拦。經(jīng)過(guò)一番搜索研究,發(fā)現(xiàn)解決方法竟出奇的簡(jiǎn)單舷暮,只需要一行:
descendantFocusability屬性的作用是當(dāng)一個(gè)view獲取焦點(diǎn)時(shí)态罪,定義viewGroup和其子控件兩者之間的關(guān)系。而blocksDescendants是viewgroup會(huì)覆蓋子類控件而直接獲得焦點(diǎn)下面。
在webview的父view加上這行代碼就解決了這個(gè)問(wèn)題