- Fragments Represent Reusable portion of your apps UI
- Fragments are used to define and manage UI of a single screen or portion of screen.
- Fragments has it's own layout , Life cycle and can handle input events
- Fragments can not exist on its own it must be hosted by an Activity or another Fragment
Activities are ideal place to put global elements around your app's UI like Navigation Drawer, Toolbar , Bottom Navigation and fragments are better suited to define UI of single screen or portion of screen. You can use multiple Fragments with single Activity , this gives more modularity and reusability to our code.
Add the following dependency in your app level build.gradle file to use fragments
implementation "androidx.fragment:fragment-ktx:1.3.6"Now create a new fragment
package com.arun.androidtutsforu.demofragment
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
class DemoFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_demo, container, false)
}
}
This is the layout of our fragment<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/frameLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".DemoFragment">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is a Fragment"
android:textColor="#000000"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Fragment can not exists on its own , it must be hosted by an Activity or another Fragment.Add Fragment to the Activity
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<fragment
android:id="@+id/demofragment"
android:name="com.arun.androidtutsforu.demofragment.DemoFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
android:name="com.arun.androidtutsforu.demofragment.DemoFragment" --This should be fully-qualified class name of the fragmentFollowing is the MainActivity
package com.arun.androidtutsforu.demofragment
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}





Comments
Post a Comment