📜  如何使用Kotlin在Android中实现Tabs,ViewPager和Fragment?

📅  最后修改于: 2021-05-13 14:00:54             🧑  作者: Mango

在某些Android应用程序中,使用了选项卡,该选项卡允许开发人员在单个活动中组合多个任务(操作)。另一方面,它为该应用程序提供了不同的外观。通过使用ViewPager,还可以提供左右滑动的不同感觉。并且要实现该主题,需要很少的术语,例如ViewPager ,Fragments和TabLayout 。出于实践目的,本文使用Kotlin编程语言。

什么TabLayout,ViewPager和Fragment?

  • TabLayout 此视图允许我们在android应用程序中使用多个选项卡。此布局包含不同的选项卡。在本文中,选项卡用于从一个片段导航到另一个片段。
  • ViewPager 此视图使我们可以利用左右滑动功能来显示另一个片段。
  • 片段这是活动的一部分。要在单个活动上执行多个任务,此视图是必需的。片段还根据需要使用包含视图的布局文件。

下面的样本GIF给出得到什么我们将在本文中做的想法

在Android示例GIF中实现标签页,ViewPager和片段

分步实施

步骤1:创建一个新项目

要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Kotlin作为编程语言。

步骤2:建立片段

  • 转到应用程序> res>布局>右键单击>新建>布局资源文件,然后询问文件名,然后提供“ layout_login ”作为该布局文件的名称。
  • 使用相同的方法创建另一个布局文件“ layout_signup ”。
  • 之后,对“ layout_login.xml ”文件使用以下代码。这里显示了一个TextView。
XML



  
    
    
      


XML



  
    
    
      


Kotlin
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
  
// Here ":" symbol is indicate that LoginFragment
// is child class of Fragment Class
class LoginFragment : Fragment() {
    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
    ): View? {
        return inflater.inflate(
            R.layout.layout_login, container, false
        )
    }
    // Here "layout_login" is a name of layout file
    // created for LoginFragment
}


Kotlin
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
  
// Here ":" symbol is indicate that SignupFragment
// is child class of Fragment Class
class SignupFragment : Fragment() {
    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
    ): View? {
        return inflater.inflate(
            R.layout.layout_signup, container, false
        )
    }
    // Here "layout_signup" is a name of layout file
    // created for SignFragment
}


XML