android - 自定義有滑動事件的ViewGrounp時如何固定其中某個圖形的位置?
問題描述
我發(fā)現很多帶指示器的ViewPager控件都是繼承一個RelativeLayout 然后通過代理ViewPager的方法來偽裝成一個ViewPager,而indicator就是覆蓋在這個ViewPager之上。我覺得這樣做有點點亂。就想通過繼承一個ViewPager然后在onDraw自己通過canvas將indicator畫上去,結果發(fā)現自己太年輕了,indicator在畫上去的時候,布局是顯示在ViwePager的item 0上(看起來像是在item 0 之上),ViewPager滑動的時候indicator也跟著跑了。
如上圖顯示,我的indicator跟著跑了。接著我讓我的indicator的x坐標在onDraw中用getLocationOnScreen()中獲得的做處理。結果發(fā)現不行。
這樣的話我能想到的又只有像其他一樣在ViewPager之外包裹一層RelativeLayout,(當然我覺得FrameLayout更好)
但是有點不甘心這樣處理的控件不能用一個View解決而是要3個View互相嵌套覺得不爽啊,請教大神有沒有什么辦法可以讓一個ViewGounp處理控件內內容滑動的同時,某些內容不被同時移動呢?
發(fā)出這個問題之前我在想,我是不是應該監(jiān)聽ViewPager的偏移量然后在onDraw中不斷向內容的移動反方向移動?我去試試
問題解答
回答1:我監(jiān)聽了onScrollChanged() 獲取了偏移量,然后在onDraw()中,加上了這個偏移量解決了這個問題。
但是發(fā)現onDraw中indicator會被ViewPager中的內容覆蓋掉~~這個方案還是不行?。。∏笾?/p>
相關文章:
1. android - NavigationView 的側滑菜單中如何保存新增項(通過程序添加)2. tp5 不同控制器中的變量調用問題3. 微信小程序可以用gulp,webpack嗎?4. mysql服務無法啟動1067錯誤,誰知道正確的解決方法?5. ueditor上傳服務器提示后端配置項沒有正常加載,求助!?。。。?/a>6. python - 為什么正常輸出中文沒有亂碼,zip函數之后出現中文編程unicode編碼的問題,我是遍歷輸出的啊。7. 老師 我是一個沒有學過php語言的準畢業(yè)生 我希望您能幫我一下8. 這段代碼既不提示錯誤也看不到結果,請老師明示錯在哪里,謝謝!9. php7.3.4中怎么開啟pdo驅動10. 提示語法錯誤語法錯誤: unexpected ’abstract’ (T_ABSTRACT)
