Use reflection to make it a bit harder to swipe between tabs
This commit is contained in:
parent
b7ce805e2c
commit
aa985edbd5
@ -14,7 +14,9 @@ import androidx.core.view.GravityCompat
|
|||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.paging.ExperimentalPagingApi
|
import androidx.paging.ExperimentalPagingApi
|
||||||
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import androidx.viewpager2.adapter.FragmentStateAdapter
|
import androidx.viewpager2.adapter.FragmentStateAdapter
|
||||||
|
import androidx.viewpager2.widget.ViewPager2
|
||||||
import com.bumptech.glide.Glide
|
import com.bumptech.glide.Glide
|
||||||
import com.google.android.material.tabs.TabLayoutMediator
|
import com.google.android.material.tabs.TabLayoutMediator
|
||||||
import org.pixeldroid.app.databinding.ActivityMainBinding
|
import org.pixeldroid.app.databinding.ActivityMainBinding
|
||||||
@ -268,8 +270,22 @@ class MainActivity : BaseActivity() {
|
|||||||
header.setActiveProfile(account.toLong())
|
header.setActiveProfile(account.toLong())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use reflection to make it a bit harder to swipe between tabs
|
||||||
|
*/
|
||||||
|
private fun ViewPager2.reduceDragSensitivity() {
|
||||||
|
val recyclerViewField = ViewPager2::class.java.getDeclaredField("mRecyclerView")
|
||||||
|
recyclerViewField.isAccessible = true
|
||||||
|
val recyclerView = recyclerViewField.get(this) as RecyclerView
|
||||||
|
|
||||||
|
val touchSlopField = RecyclerView::class.java.getDeclaredField("mTouchSlop")
|
||||||
|
touchSlopField.isAccessible = true
|
||||||
|
val touchSlop = touchSlopField.get(recyclerView) as Int
|
||||||
|
touchSlopField.set(recyclerView, touchSlop*2)
|
||||||
|
}
|
||||||
|
|
||||||
private fun setupTabs(tab_array: List<() -> Fragment>){
|
private fun setupTabs(tab_array: List<() -> Fragment>){
|
||||||
|
binding.viewPager.reduceDragSensitivity()
|
||||||
binding.viewPager.adapter = object : FragmentStateAdapter(this) {
|
binding.viewPager.adapter = object : FragmentStateAdapter(this) {
|
||||||
override fun createFragment(position: Int): Fragment {
|
override fun createFragment(position: Int): Fragment {
|
||||||
return tab_array[position]()
|
return tab_array[position]()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user