What is the android layout?

An android layout is a class that handles arranging the way its children appear on the screen. Anything that is a View (or inherits from View) can be a child of a layout. All of the layouts inherit from ViewGroup (which inherits from View) so you can nest layouts. You could also create your own custom layout by making a class that inherits from ViewGroup. The base class of all layouts is ViewGroup.

Let's think simpler, the basic building block for the user interface is a View object which is created from the View class and occupies a rectangular area on the screen, and is responsible for drawing and event handling. The view is the base class for widgets, which are used to create interactive UI components like buttons, text fields, etc. The ViewGroup is a subclass of View and provides an invisible container that holds other Views or other ViewGroups and defines their layout properties.

Here we have listed the standard android layouts as follows:

Sr.No Layout & Description
1

Linear Layout

Linear layout is a view group that aligns all children in a single direction, vertically or horizontally. You can specify the layout direction with the android: orientation attribute.

2 Relative Layout

Relative Layout enables you to specify how child views are positioned relative to each other. The position of each view can be specified as relative to sibling elements or relative to the parent.

3 Table Layout

TableLayout is a view that groups views into rows and columns.

4 Absolute Layout

AbsoluteLayout enables you to specify the exact location of its children.

5 Frame Layout

The FrameLayout is a placeholder on the screen that you can use to display a single view.

6 Grid Layout

GridView is a ViewGroup that displays items in a two-dimensional, scrollable grid.

These are not the only layouts. Google and many more developers frequently develop the new layout and publish it as a library we can use them by adding their dependency in our android project.

Layout Attributes

Each layout has a set of attributes that define the visual properties of that layout. There are a few common attributes among all the layouts and each layout has a set of specific attributes, we have defined each layout separately please find it in the left menu. Following are common attributes and will be applied to all the layouts:

Sr.No Attribute & Description
1

android:id

This is the ID that uniquely identifies the view. Its value must be unique in the view group.

2

android:layout_width

This is the width of the layout. General responsive values are "match_parent" and "wrap_content"

3

android:layout_height

This is the height of the layout (responsive values are "match_parent" "wrap_content")

4

android:layout_marginTop

This is the extra space on the top side of the layout.

5

android:layout_marginBottom

This is the extra space on the bottom side of the layout.

6

android:layout_marginLeft

This is the extra space on the left side of the layout.

7

android:layout_marginRight

This is the extra space on the right side of the layout.

8

android:layout_gravity

This specifies how child Views are positioned.

9

android:layout_weight

This specifies how much of the extra space in the layout should be allocated to the View. It is specified in the ratio. 

10

android:layout_x

This specifies the x-coordinate of the layout.

11

android:layout_y

This specifies the y-coordinate of the layout.

12

android:paddingLeft

This is the left padding filled for the layout.

13

android:paddingRight

This is the right padding filled for the layout.

14

android:paddingTop

This is the top padding filled for the layout.

15

android:paddingBottom

This is the bottom padding filled for the layout.

Here width and height are the dimension of the layout/view which can be specified in terms of dp (Density-independent Pixels), sp ( Scale-independent Pixels), pt ( Points which is 1/72 of an inch), px( Pixels), mm ( Millimeters) and finally in (inches).

You can specify width and height with exact measurements but more often, you will use one of these constants to set the width or height −

  • android:layout_width = "wrap_content" tells your view to size itself to the dimensions required by its content.

  • android:layout_width = "fill_parent" tells your view to become as big as its parent view.

Gravity attribute plays important role in positioning the view object and it can take one or more (separated by '|') of the following constant values.

Constant Value Description
top 0x30 Push object to the top of its container, not changing its size.
bottom 0x50 Push object to the bottom of its container, not changing its size.
left 0x03 Push object to the left of its container, not changing its size.
right 0x05 Push object to the right of its container, not changing its size.
center_vertical 0x10 Place object in the vertical center of its container, not changing its size.
fill_vertical 0x70 Grow the vertical size of the object if needed so it completely fills its container.
center_horizontal 0x01 Place object in the horizontal center of its container, not changing its size.
fill_horizontal 0x07 Grow the horizontal size of the object if needed so it completely fills its container.
center 0x11 Place the object in the center of its container in both the vertical and horizontal axis, not changing its size.
fill 0x77 Grow the horizontal and vertical size of the object if needed so it completely fills its container.
clip_vertical 0x80 Additional option that can be set to have the top and/or bottom edges of the child clipped to its container's bounds. The clip will be based on the vertical gravity: a top gravity will clip the bottom edge, a bottom gravity will clip the top edge, and neither will clip both edges.
clip_horizontal 0x08 Additional option that can be set to have the left and/or right edges of the child clipped to its container's bounds. The clip will be based on the horizontal gravity: a left gravity will clip the right edge, a right gravity will clip the left edge, and neither will clip both edges.
start 0x00800003 Push object to the beginning of its container, not changing its size.
end 0x00800005 Push object to the end of its container, not changing its size.

View Identity

A view object may have a unique ID assigned to it which will identify the View uniquely within the tree. The syntax for an ID, inside an XML tag is −

android:id="@+id/send_button

Following is a brief description of @ and + signs :

  • The at-symbol (@) at the beginning of the string indicates that the XML parser should parse and expand the rest of the ID string and identify it as an ID resource.

  • The plus symbol (+) means that this is a new resource name that must be created and added to our resources. To create an instance of the view object and capture it from the layout, use the following :

Button sendBtn= (Button) findViewById(R.id.send_button);


×