android - 自定義有滑動(dòng)事件的ViewGrounp時(shí)如何固定其中某個(gè)圖形的位置?
問(wèn)題描述
我發(fā)現(xiàn)很多帶指示器的ViewPager控件都是繼承一個(gè)RelativeLayout 然后通過(guò)代理ViewPager的方法來(lái)偽裝成一個(gè)ViewPager,而indicator就是覆蓋在這個(gè)ViewPager之上。我覺(jué)得這樣做有點(diǎn)點(diǎn)亂。就想通過(guò)繼承一個(gè)ViewPager然后在onDraw自己通過(guò)canvas將indicator畫(huà)上去,結(jié)果發(fā)現(xiàn)自己太年輕了,indicator在畫(huà)上去的時(shí)候,布局是顯示在ViwePager的item 0上(看起來(lái)像是在item 0 之上),ViewPager滑動(dòng)的時(shí)候indicator也跟著跑了。
如上圖顯示,我的indicator跟著跑了。接著我讓我的indicator的x坐標(biāo)在onDraw中用getLocationOnScreen()中獲得的做處理。結(jié)果發(fā)現(xiàn)不行。
這樣的話(huà)我能想到的又只有像其他一樣在ViewPager之外包裹一層RelativeLayout,(當(dāng)然我覺(jué)得FrameLayout更好)
但是有點(diǎn)不甘心這樣處理的控件不能用一個(gè)View解決而是要3個(gè)View互相嵌套覺(jué)得不爽啊,請(qǐng)教大神有沒(méi)有什么辦法可以讓一個(gè)ViewGounp處理控件內(nèi)內(nèi)容滑動(dòng)的同時(shí),某些內(nèi)容不被同時(shí)移動(dòng)呢?
發(fā)出這個(gè)問(wèn)題之前我在想,我是不是應(yīng)該監(jiān)聽(tīng)ViewPager的偏移量然后在onDraw中不斷向內(nèi)容的移動(dòng)反方向移動(dòng)?我去試試
問(wèn)題解答
回答1:我監(jiān)聽(tīng)了onScrollChanged() 獲取了偏移量,然后在onDraw()中,加上了這個(gè)偏移量解決了這個(gè)問(wèn)題。
但是發(fā)現(xiàn)onDraw中indicator會(huì)被ViewPager中的內(nèi)容覆蓋掉~(yú)~這個(gè)方案還是不行?。?!求助
相關(guān)文章:
1. java - 阿里的開(kāi)發(fā)手冊(cè)中為什么禁用map來(lái)作為查詢(xún)的接受類(lèi)?2. android - 百度地圖加載完成監(jiān)聽(tīng)3. 關(guān)于docker下的nginx壓力測(cè)試4. nignx - docker內(nèi)nginx 80端口被占用5. docker images顯示的鏡像過(guò)多,狗眼被亮瞎了,怎么辦?6. dockerfile - [docker build image失敗- npm install]7. dockerfile - 我用docker build的時(shí)候出現(xiàn)下邊問(wèn)題 麻煩幫我看一下8. python3.x - git bash如何運(yùn)行.bat文件?9. golang - 用IDE看docker源碼時(shí)的小問(wèn)題10. docker api 開(kāi)發(fā)的端口怎么獲???
