android - 自定義有滑動事件的ViewGrounp時如何固定其中某個圖形的位置?
問題描述
我發(fā)現(xiàn)很多帶指示器的ViewPager控件都是繼承一個RelativeLayout 然后通過代理ViewPager的方法來偽裝成一個ViewPager,而indicator就是覆蓋在這個ViewPager之上。我覺得這樣做有點點亂。就想通過繼承一個ViewPager然后在onDraw自己通過canvas將indicator畫上去,結(jié)果發(fā)現(xiàn)自己太年輕了,indicator在畫上去的時候,布局是顯示在ViwePager的item 0上(看起來像是在item 0 之上),ViewPager滑動的時候indicator也跟著跑了。
如上圖顯示,我的indicator跟著跑了。接著我讓我的indicator的x坐標在onDraw中用getLocationOnScreen()中獲得的做處理。結(jié)果發(fā)現(xiàn)不行。
這樣的話我能想到的又只有像其他一樣在ViewPager之外包裹一層RelativeLayout,(當然我覺得FrameLayout更好)
但是有點不甘心這樣處理的控件不能用一個View解決而是要3個View互相嵌套覺得不爽啊,請教大神有沒有什么辦法可以讓一個ViewGounp處理控件內(nèi)內(nèi)容滑動的同時,某些內(nèi)容不被同時移動呢?
發(fā)出這個問題之前我在想,我是不是應(yīng)該監(jiān)聽ViewPager的偏移量然后在onDraw中不斷向內(nèi)容的移動反方向移動?我去試試
問題解答
回答1:我監(jiān)聽了onScrollChanged() 獲取了偏移量,然后在onDraw()中,加上了這個偏移量解決了這個問題。
但是發(fā)現(xiàn)onDraw中indicator會被ViewPager中的內(nèi)容覆蓋掉~~這個方案還是不行啊!!求助
相關(guān)文章:
1. 怎樣使留言的數(shù)據(jù)與登錄的用戶名,密碼保持一致(在數(shù)據(jù)庫上是一行的)。2. java - 輸出4個不相等整數(shù)之間所有任意三個整數(shù)的乘積3. javascript - 一排三個框,各個框的間距是15px,距離外面的白框間距也是15px,這個css怎么寫?4. javascript - jqery 適應(yīng)輪播,哪位前輩可以幫助小弟按照下面圖片寫一個大概例子,小弟在此跪謝!5. css3 - rem布局下,用戶瀏覽器的最小字號是12px怎么辦?6. css如何實現(xiàn)兩欄布局,左邊固定寬度,右邊寬度自適應(yīng),且高度和瀏覽器當前高度一致?7. css3 - CSSComb for Sublime Text 在 Windows 下無法使用。8. javascript - nodejs中使用request庫怎么抓取網(wǎng)頁中的圖片9. mysql money 插入數(shù)據(jù)為什么報錯?10. angular.js - 百度爬蟲如何處理“#”符號?
