因此,当我首先开始我的项目时,我修改了 OnCreate 中的 MainActivity 类,以初始化其 Activity_main.xml 的函数(imagebuttons recyclerview 背景更改与开关等),这是我的主要活动。然后我想到添加滑动功能,通过从左向右滑动从主布局到第二布局。我以与创建 Mainactivity 相同的方式创建了第二个布局。我创建了该类,然后将 xml 与该类连接起来 (tools:context=".FoldersActivity") 并初始化函数。
我在互联网上发现了 ViewPager2,但我找不到任何解决方案来制作我需要的东西。谢谢。
首先在activity_main中添加
ViewPager2
这将充当允许用户在布局之间滑动的容器
活动_主要
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
您将创建两个片段,而不是为每个布局创建单独的活动。
MainFragment
用于您的主布局。FoldersFragment
用于第二个布局。
主片段.kt
class MainFragment : Fragment(R.layout.fragment_main) {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
// Initialize your functions for Main Layout here
}
}
FoldersFragment.kt
class FoldersFragment : Fragment(R.layout.fragment_folders) {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
// Initialize your functions for Folders Layout here
}
}
现在我们可以设置
ViewPager2
来处理片段之间的滑动。创建一个适配器来告诉 ViewPager2 显示哪个片段。
MainActivty.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Reference to the ViewPager2 in activity_main.xml
val viewPager: ViewPager2 = findViewById(R.id.viewPager)
// List of fragments to swipe between
val fragments = listOf(MainFragment(), FoldersFragment())
// Set up the adapter
val adapter = ViewPagerAdapter(this, fragments)
viewPager.adapter = adapter
}
}
ViewPagerAdapter.kt
class ViewPagerAdapter(
activity: AppCompatActivity,
private val fragments: List<Fragment>
) : FragmentStateAdapter(activity) {
// Returns the number of fragments
override fun getItemCount(): Int = fragments.size
// Returns the fragment to display for the current page
override fun createFragment(position: Int): Fragment {
return fragments[position]
}
}