要禁止ViewPager2和Fragment的拉伸效果,你可以在ViewPager2的适配器中设置自定义的FragmentStateAdapter并覆盖createFragment方法,将返回的Fragment的宽度和高度设置为MATCH_PARENT。以下是示例代码:

class CustomFragmentAdapter(fragmentManager: FragmentManager, lifecycle: Lifecycle) :
    FragmentStateAdapter(fragmentManager, lifecycle) {

    override fun createFragment(position: Int): Fragment {
        return CustomFragment()
    }
}

class CustomFragment : Fragment() {

    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        return inflater.inflate(R.layout.fragment_custom, container, false)
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        
        // 设置Fragment的宽度和高度为MATCH_PARENT
        view.layoutParams = ViewGroup.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.MATCH_PARENT
        )
    }
}

然后在你的Activity中,将ViewPager2的适配器设置为自定义的适配器:

val viewPager2 = findViewById<ViewPager2>(R.id.viewPager2)
val adapter = CustomFragmentAdapter(supportFragmentManager, lifecycle)
viewPager2.adapter = adapter

这样就可以禁止ViewPager2和Fragment的拉伸效果了

Android Kotlin ViewPager2+Fragment上下滑动 禁止拉伸效果

原文地址: https://www.cveoy.top/t/topic/iCO1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录