Skip to main content

How to use fragments in Kotlin Android

How to use fragments in Kotlin Android.

Here is a detailed step-by-step tutorial on how to use fragments in Kotlin Android:

Introduction to Fragments

Fragments are a modular section of an activity that can be combined with other fragments to build a multi-pane user interface. They represent a portion of the user interface and can be reused across multiple activities.

Step 1: Create a new project

To get started, create a new Android project in Android Studio. Choose an appropriate project name and configure the minimum SDK version according to your requirements.

Step 2: Add the necessary dependencies

Open the build.gradle file of your app module and add the following dependencies in the dependencies block:

implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'androidx.fragment:fragment-ktx:1.3.6'

Sync the project to ensure the dependencies are resolved.

Step 3: Create a Fragment class

Create a new Kotlin class for your fragment by right-clicking on the package where you want to add it. Choose "New" -> "Kotlin Class" and provide a name for your fragment (e.g., MyFragment). Make sure to select the "Class Kind" as "Fragment".

Step 4: Define the layout for the fragment

In the onCreateView() method of your fragment class, inflate the layout XML file that defines the user interface for the fragment. For example:

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

Step 5: Add the fragment to an activity

In the activity where you want to display the fragment, open the layout XML file associated with the activity. Add a FrameLayout or any other suitable container view to hold the fragment. For example:

android:layout_height="match_parent" />

Step 6: Instantiate the fragment in the activity

In the activity's onCreate() method, instantiate the fragment using the supportFragmentManager and a transaction. For example:

val fragment = MyFragment()
.replace(, fragment)

Step 7: Handle fragment transactions

To perform fragment transactions, such as adding, replacing, or removing fragments, you can use the FragmentManager and FragmentTransaction classes. For example:

val fragment = MyFragment()
.replace(, fragment)

In this example, the addToBackStack(null) method adds the transaction to the back stack, allowing the user to navigate back to the previous fragment.

Step 8: Communicate between fragments and activity

To communicate between a fragment and its hosting activity, you can define an interface in the fragment and implement it in the activity. Here's an example:

In the fragment:

interface OnFragmentInteractionListener {
fun onFragmentInteraction(data: String)

private var listener: OnFragmentInteractionListener? = null

override fun onAttach(context: Context) {
if (context is OnFragmentInteractionListener) {
listener = context
} else {
throw RuntimeException("$context must implement OnFragmentInteractionListener")

override fun onDetach() {
listener = null

In the activity:

class MainActivity : AppCompatActivity(), MyFragment.OnFragmentInteractionListener {
// ...

override fun onFragmentInteraction(data: String) {
// Handle the interaction from the fragment

Remember to implement the necessary methods in the activity.

Step 9: Handle fragment lifecycle events

Fragments have their own lifecycle, and you can override various lifecycle methods to perform specific actions at different stages. Some commonly used lifecycle methods include onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroyView(), and onDestroy(). Override these methods in your fragment class as needed.

That's it! You've now learned the basics of using fragments in Kotlin Android. Feel free to explore more advanced features and techniques to enhance your app's user interface and functionality.