FrameLayout VS AbsoluteLayout in Android?


Introduction

Frame Layout and Absolute Layout are two different layouts used for developing an Android application. Frame layout is simply used to display a single child view in a stacked layout, where UI elements are placed on top of each other in a stacked manner. It is similar to that of Relative Layout which is used to display multiple UI Elements. Whereas Absolute Layout is used to specify the exact location of elements on the screen. Absolute Layout is less flexible to maintain different screen sizes.

What is Frame Layout in Android?

Frame Layout is a View Group class which is used to specify the exact position of the elements on the screen which are arranged in stack format. It is a relatively simple layout that can be used to display multiple UI elements on the top of each other, with the last added element appearing on top.

Here is How you can display Frame Layout in Android app

Add XML in your Android Layout file

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent">
   <ImageView
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:src="@drawable/background_image" />
   <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="Hello, World!"
       android:textSize="24sp"
       android:layout_gravity="center" />
   <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="Click Me"
       android:layout_gravity="bottom|right"
       android:layout_margin="16dp" />
</FrameLayout>

Explanation: In the above code we are creating a root layout as a Frame Layout. Inside this layout we are creating an image view, a tex view and a button.

Attributes of Frame Layout are as Follows

Attribute

Description

android:id

It is used to uniquely identify the component.

android:foreground

It is used to specify foreground color in RGB values.

android:foregroundGravity

It is used to specify foreground color in RGB values.

android:measureAllChildren

It is used to measure all childrens that are visible.

What is Absolute Layout in Android?

Absolute Layout is used to specify the exact position of an element using (x,y) coordinate of the screen. As Absolute Layout is deprecated so it is not recommended in modern Android application development.

Issues Related to Absolute Layout

  • Lack of Responsiveness − Absolute Layout does not provide responsive layout that adapts different screen size, orientation and resolution. As the position of the UI elements are provided in (x,y) coordinates it is fixed. If the screen size increases the position of that element can get disturbed.

  • Not supporting accessibility − Absolute Layout does not support accessibility features like screen readers, as the layout does not provide meaningful information about the relationships between UI elements, making it less accessible for users with disabilities.

  • Difficulty in maintenance − As the position of the UI elements are specified using coordinates it is very difficult to maintain as the screen size differs.

Here is How you can display Table Layout in Android app

Add XML in your Android Layout file

<TableLayout 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">
   <!-- on below line creating a table row -->
   <TableRow>
       <!-- creating a text view on below line -->
       <TextView
           android:layout_width="100dp"
           android:layout_height="wrap_content"
           android:text="Hello" />
       <!-- creating image view on below line -->
       <ImageView
           android:layout_width="100dp"
           android:layout_height="wrap_content"
           android:layout_gravity="center_vertical"
           android:src="@drawable/ic_android" />
   </TableRow>
</TableLayout>

Explanation: In the above code we are creating a root layout as a Table Layout. Inside this table layout we are creating a table row for displaying individual rows. Inside this table row we are displaying a text view and an image view.

Attributes of Table Layout are as follows

Attributes

Description

android:id

It is used to uniquely identify absolute layout.

android:layout_x

It specifies the X coordinate of the view.

android:layout_y

It specifies the Y coordinate of the view.

Frame Layout VS Absolute Layout

Frame Layout

Absolute Layout

Frame Layout allows you to display UI elements one above another in a stacked manner. In which the last added element will appear at the top.

Absolute Layout allows you to display UI Elements by giving the exact position of that element using (x,y) coordinates.

Frame Layout provides more flexibility in terms of responsiveness and adaptability to different screen size and orientation.

Absolute Layout does not provide any flexibility as we are specifying the UI components using coordinates.

In Frame Layout UI elements are positioned relative to the edge of the parent layout or other UI elements within it.

It is very difficult to create responsive UI using Absolute Layout.

Frame Layout is a recommended approach for overlaying UI elements. For displaying UI elements in stack format.

Absolute Layout is deprecated and is not recommended to use in modern Android app development.

Conclusion

In summary, Frame Layout is a more flexible and recommended approach for positioning UI elements in Android app development. While Absolute Layout is deprecated and not recommended for use due to its limitations and responsiveness issues. It is recommended to use other layout types such as ConstraintLayout, Linear Layout or Relative Layout depending on your specific UI design requirements.

Updated on: 08-May-2023

292 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements