diff --git a/V2rayNG/app/build.gradle b/V2rayNG/app/build.gradle index 4696c7c9..fd128a33 100644 --- a/V2rayNG/app/build.gradle +++ b/V2rayNG/app/build.gradle @@ -83,6 +83,7 @@ dependencies { implementation "androidx.preference:preference:1.0.0" implementation "androidx.recyclerview:recyclerview:1.2.1" implementation 'androidx.multidex:multidex:2.0.1' + implementation 'androidx.viewpager2:viewpager2:1.0.0' // Androidx ktx implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' diff --git a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/FragmentAdapter.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/FragmentAdapter.kt index f90b3e79..d9d12992 100644 --- a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/FragmentAdapter.kt +++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/FragmentAdapter.kt @@ -1,21 +1,17 @@ package com.v2ray.ang.ui - import androidx.fragment.app.Fragment -import androidx.fragment.app.FragmentManager -import androidx.fragment.app.FragmentStatePagerAdapter +import androidx.fragment.app.FragmentActivity +import androidx.viewpager2.adapter.FragmentStateAdapter -class FragmentAdapter(fm: FragmentManager, private val mFragments: List, private val mTitles: List) : FragmentStatePagerAdapter(fm) { +class FragmentAdapter(fragmentActivity: FragmentActivity, private val mFragments: List) : + FragmentStateAdapter(fragmentActivity) { - override fun getItem(position: Int): Fragment { + override fun createFragment(position: Int): Fragment { return mFragments[position] } - override fun getCount(): Int { + override fun getItemCount(): Int { return mFragments.size } - - override fun getPageTitle(position: Int): CharSequence? { - return mTitles[position] - } } diff --git a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/RoutingSettingsActivity.kt b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/RoutingSettingsActivity.kt index 7b04f41e..dc681fdc 100644 --- a/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/RoutingSettingsActivity.kt +++ b/V2rayNG/app/src/main/kotlin/com/v2ray/ang/ui/RoutingSettingsActivity.kt @@ -4,10 +4,10 @@ import android.graphics.Color import android.os.Bundle import com.v2ray.ang.R import androidx.fragment.app.Fragment +import com.google.android.material.tabs.TabLayoutMediator import com.v2ray.ang.AppConfig import com.v2ray.ang.databinding.ActivityRoutingSettingsBinding - class RoutingSettingsActivity : BaseActivity() { private lateinit var binding: ActivityRoutingSettingsBinding @@ -29,9 +29,11 @@ class RoutingSettingsActivity : BaseActivity() { fragments.add(RoutingSettingsFragment().newInstance(AppConfig.PREF_V2RAY_ROUTING_DIRECT)) fragments.add(RoutingSettingsFragment().newInstance(AppConfig.PREF_V2RAY_ROUTING_BLOCKED)) - val adapter = FragmentAdapter(supportFragmentManager, fragments, titles.toList()) + val adapter = FragmentAdapter(this, fragments) binding.viewpager.adapter = adapter binding.tablayout.setTabTextColors(Color.BLACK, Color.RED) - binding.tablayout.setupWithViewPager(binding.viewpager) + TabLayoutMediator(binding.tablayout, binding.viewpager) { tab, position -> + tab.text = titles[position] + }.attach() } } diff --git a/V2rayNG/app/src/main/res/layout/activity_routing_settings.xml b/V2rayNG/app/src/main/res/layout/activity_routing_settings.xml index 1c99fc95..7052cc5f 100644 --- a/V2rayNG/app/src/main/res/layout/activity_routing_settings.xml +++ b/V2rayNG/app/src/main/res/layout/activity_routing_settings.xml @@ -9,7 +9,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" /> -