每个添加的片段的片段显示不正确,最后一个片段移到侧面

时间:2019-09-21 10:01:04

标签: android-viewpager fragmentstatepageradapter

我正在制作一个浏览器。作为基础,请使用Viewpager和FragmentStatePagerAdapter。添加新片段后,会将最后一个片段移到侧面,或者屏幕上已经出现了移位。

[1] http://prnt.sc/p912dn [1]

[2] http://prnt.sc/p912u1 [2]

[3] http://prnt.sc/p912x5 [3]

我没有发现类似的问题。

override fun getItem(position: Int): Fragment = listOpenTabs[position].fragment

override fun getCount(): Int {
    return listOpenTabs.size
}

private var listOpenTabs = mutableListOf<TabsModel>()

fun removeAt(position: Int) {
    onClickCloseTab(listOpenTabs[position])
}

fun setData(list: MutableList<TabsModel>) {
    listOpenTabs = list
}

//自定义查看器

可私有变量可滑动:布尔值=否     构造函数(上下文:上下文):超级(上下文)

constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
    this.swipeable = true
}

@SuppressLint("ClickableViewAccessibility")
override fun onTouchEvent(event: MotionEvent): Boolean {
    return if (this.swipeable) {
        super.onTouchEvent(event)
    } else false
}

override fun onInterceptTouchEvent(event: MotionEvent): Boolean {
    return if (this.swipeable) {
        super.onInterceptTouchEvent(event)
    } else false
}

fun setSwipeable(swipeable: Boolean) {
    this.swipeable = swipeable
}

//活动 在活动中,我将这种方法用于比例查看器和打开标签页

    if (dm2!!.widthPixels - viewPager.width < 5) {
        viewPager.pageMargin = 40
        llayoutviewpage.gravity = CENTER_IN_PARENT
        val pvhX = PropertyValuesHolder.ofFloat("scaleX", 1f, 0.8f)
        val pvhY = PropertyValuesHolder.ofFloat("scaleY", 1f, 0.8f)
        val scale = ObjectAnimator.ofPropertyValuesHolder(viewPager, pvhX, pvhY)
        scale.duration = 100
        scale.start()
        val Rlparam =
            RelativeLayout.LayoutParams(dm2!!.widthPixels * 8 / 10, dm2!!.heightPixels * 8 / 10)
        Rlparam.addRule(CENTER_IN_PARENT)
        llayoutviewpage.layoutParams = Rlparam
        viewPager.setSwipeable(true)
        nav_bar.visibility = View.GONE
        addTab.visibility = View.VISIBLE
        viewPager.currentItem = viewPager.currentItem
    } else {
        viewPager.pageMargin = 0
        llayoutviewpage.gravity = CENTER_IN_PARENT
        val pvhX = PropertyValuesHolder.ofFloat("scaleX", 0.8f, 1f)
        val pvhY = PropertyValuesHolder.ofFloat("scaleY", 0.8f, 1f)
        val scale = ObjectAnimator.ofPropertyValuesHolder(viewPager, pvhX, pvhY)
        scale.duration = 100
        scale.start()
        val Rlparam2 = RelativeLayout.LayoutParams(dm2!!.widthPixels, dm2!!.heightPixels)
        Rlparam2.addRule(CENTER_IN_PARENT)
        llayoutviewpage.layoutParams = Rlparam2
        viewPager.setSwipeable(false)
        nav_bar.visibility = View.VISIBLE
        addTab.visibility = View.GONE
        viewPager.currentItem = viewPager.currentItem
    }

0 个答案:

没有答案