的一半繪製順序我有以下ViewPager
:反向在ViewPager
我試圖建立一個覆蓋流視圖。這意味着ViewPager
中視圖的位置和大小會根據觸摸輸入而改變。
除了視圖的繪製順序以外,一切正常,我的實現正常。
我可以打電話pager.setPageTransformer(false,PageTransformer())
,看起來像在上面的圖像,或setPageTransformer(true, PageTransformer())
這將顛倒繪圖順序。
問題是,我需要中間視圖(綠色)在它的鄰居(藍色,灰色)前面。
我看了一些關於view.bringToFront()
的帖子,但是我找不到解決方法。 中間到前端的解決方案將會很酷,但是這隻有在一次可見三個視圖的情況下才有效。在五種觀點中,第五種觀點仍然與第四種觀點重疊。 (令人困惑,不是嗎?^^)
順便說一句,我的minSdk是16到18,所以海拔(棒棒糖)是不可能的。
這是我目前的PageTransformer
class PageTransformer() : ViewPager.PageTransformer {
val MIN_SCALE = 0.75f
override fun transformPage(view: View, position: Float) {
val pageWidth = view.width
val pageHeight = view.height
var vertMargin = pageHeight * (1 - MIN_SCALE)/2
var horzMargin = pageWidth * (1 - MIN_SCALE)/2
view.scaleX = MIN_SCALE
view.scaleY = MIN_SCALE
if (position < -2) { // [-Infinity,-1)
// This page is way off-screen to the left.
view.translationX = horzMargin - vertMargin/2
} else if (position <= 2) { // [-1,1]
// Modify the default slide transition to shrink the page as well
val scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position))
vertMargin = pageHeight * (1 - scaleFactor)/2
horzMargin = pageWidth * (1 - scaleFactor)/2
if (position < 0) {
view.translationX = horzMargin - vertMargin/2
} else {
view.translationX = -horzMargin + vertMargin/2
}
// Scale the page down (between MIN_SCALE and 1)
view.scaleX = scaleFactor
view.scaleY = scaleFactor
view.rotationY = position * -30
} else { // (1,+Infinity]
// This page is way off-screen to the right.
view.translationX = -horzMargin + vertMargin/2
}
}
}
總結一下,我需要一個ViewPager
可逆轉當前項目後,其繪製順序。
注:我已經嘗試了每個可用的庫,但沒有任何工作。
我希望有一個天才誰可以幫我:)
你能的什麼是您需要的鉛筆素描?我不太明白它 – Mani
灰色的視圖重疊綠色的一個bevause繪圖順序是從左到右。我想要一箇中間的訂單。 – Appyx
嘿,你有沒有找到解決辦法? –