Layout Managers (or simply layouts) are said to be extensions of the ViewGroup class. They are used to set the position of child Views within the UI we are building. We can nest the layouts, and therefore we can create arbitrarily complex UIs using a combination of layouts.
There is a number of layout classes in the Android SDK. They can be used, modified or can create your own to make the UI for your Views, Fragments and Activities. You can display your contents effectively by using the right combination of layouts.
The most commonly used layout classes that are found in Android SDK are:
- FrameLayout- It is the simplest of the Layout Managers that pins each child view within its frame. By default the position is the top-left corner, though the gravity attribute can be used to alter its locations. You can add multiple children stacks each new child on top of the one before, with each new View potentially obscuring the previous ones.
- LinearLayout- A LinearLayout aligns each of the child View in either a vertical or a horizontal line. A vertical layout has a column of Views, whereas in a horizontal layout there is a row of Views. It supports a weight attribute for each child View that can control the relative size of each child View within the available space.
- RelativeLayout- It is flexible than other native layouts as it lets us to define the position of each child View relative to the other views and the dimensions of the screen.
- GridLayout- It was introduced in Android 4.0 (API level 14), the Grid Layout used a rectangular grid of infinitely thin lines to lay out Views in a series of rows and columns. The Grid Layout is incredibly flexible and can be used to greatly simplify layouts and reduce or eliminate the complex nesting often required to construct UIs using the layouts described before.
Each of these layouts is designed to scale to suit the screen size of the host device by avoiding the used of absolute co- ordinates of the positions or predetermined pixel values. This makes the app suitable for the diverse set of Android devices.
- Android UI Layouts
- Android | How to Create/Start a New Project in Android Studio?
- Android | How to add Radio Buttons in an Android Application?
- Android | Android Application File Structure
- Android | How to Request permissions in Android Application?
- Android | AdMob Interstitial Ads for Android Studio
- Android | AdMob Banner Ads for Android Studio
- Design Dropbox - A System Design Interview Question
- Difference between Android 1.0 and Android 3.2.2
- Difference between Android 1.0 and Android 2.3.7
- Difference between Android 1.0 and Android 4.2.1
- Difference between Android 1.0 and Android 2.3.3
- Difference between Android 1.0 and Android 4.0.2
- Difference between Android 1.0 and Android 4.0.1
- Difference between Android 1.0 and Android 3.2.4
- Difference between Android 1.0 and Android 3.2.6
- Difference between Android 1.0 and Android 3.2.1
- Difference between Android 1.0 and Android 4.0
- Difference between Android 1.0 and Android 1.1
- Difference between Android 1.0 and Android 1.5
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.