Skip to main content

Fragments In Android Kotlin

  • 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 act as a frame that contains the fragment .Each fragment operates like a view in the activity but it has 
has it's own layout , Life cycle and can handle input events.
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

Popular posts

Android List View using Custom Adapter and SQLite

following is a simple applicaton to create ListView using  Custom adapter.screenshot of the application  is like this . ListView is not used in android Anymore . We use  RecyclerView  and  CardView   in Android RecyclerView Demo is available on the following link http://androidtuts4u.blogspot.in/2017/04/android-recyclerview-example.html RecyclerView with Cardview Example is available on the following link http://androidtuts4u.blogspot.in/2017/09/android-card-view-example.html The ListView below the submit button is populated using Custom Adapter.Data is stored and retrieved using SQLite databsase. you can download the source code of this project from  google drive   https://drive.google.com/folderview?id=0BySLpWhqmbbdUXE5aTNhazludjQ&usp=sharing click on the above link ->sign into  your  google account ->add this to your google drive -> open it in google drive and download it. To create a simple application like this 1.  Create a class which extends  

Android CardView And SQLite example

SQLite Database Android provides several options to save persistent application data. SQlite database is ideal for saving repeating and structured data . Using Sqlite we can save structured data in a private database.  This is a simple application showing use of Sqlite database in android . This example shows how to perform Insert , select , update and delete operation in  SQlite database Screenshots of our sample application                                                                                                                      This is a Registration app. New user can register by clicking registration button . Registered  users are shown in cards below that button . we can update or delete registered users by clicking overflow menu in each card. 1.First we need to create database for our application .    a. Create a contract class .Contract class contains constants that defines names of Tables and columns of our database. Contract class allows us

How to install eclipse tar.gz file in ubuntu 12.04

eclipse-SDK-3.7-linux-gtk-x86_64.tar.gz  file can be installed in ubuntu 12.04  like this  1. dowload latest version of eclipse from here   2. extract the eclipse-SDK-3.7-linux-gtk-x86_64.tar.gz file 3. move extracted file to /opt/  directory       mv eclipse /opt/      sudo chown -R root:root eclipse      sudo chmod -R +r eclipse 4. create eclipse exectable in your path      sudo touch /usr/bin/eclipse    sudo chmod 755 /usr/bin/eclipse    sudo nano /usr/bin/eclipse 5. copy this into nano      #!/bin/sh   #export MOZILLA_FIVE_HOME="/usr/lib/mozilla/"   export ECLIPSE_HOME="/opt/eclipse"    $ECLIPSE_HOME/eclipse $* 6. save file using ctrl+o  exit with ctrl+x 7. create gnome menu item        sudo nano /usr/share/applications/eclipse.desktop 8. copy this into nano          [Desktop Entry]    Encoding=UTF-8    Name=Eclipse    Comment=Eclipse IDE    Exec=eclipse    Icon=/opt/eclipse/icon.xpm    Terminal=false    Type=A