- 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 fragment
Following 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