layout
defines the structure for an app's user interfacem
View (widget)
draws something the user can see and interact with
ViewGroup (layout)
an invisible container that defines the layout structure for View and other ViewGroup objects
Declare UI elements in XML
The presentation of the app can be separated from the code that controls its behavior
Instantiate layout elements at runtime
The View and ViewGroup objects can be created and their properties can be manipulated programmatically
Context
is an interface to global information about an application environment
wrap_content
sets the size of the view to the dimensions required by its content
match_parent
sets the view to be as big as its parent view group will allow
Constraint Layout
creates large and complex layouts with a flat view hierarchy
Linear Layout
organizes its child view elements into a single horizontal or vertical row
Relative Layout
is used to specify the location of child objects relative to each other or to the parent
Web View
is used for displaying web pages
Frame Layout
is designed to block out an area on the screen to display a single item
Table Layout
arranges its child objects into rows and columns
Grid Layout
arranges its child objects in a rectangular grid that can be scrolled
notification
is a message that Android displays outside the app's UI to provide the user with reminders, communication from other people, or other timely information from the app
notification drawer
allows to view more details and take actions with the notification
app bar/action bar
provides a visual structure and interactive elements that are familiar to users
toast
provides simple feedback about an operation in a small popup
Snackbar
provides a quick pop-up message to the user.
dialog
is a small window that prompts the user to make a decision or enter additional information. It is not designed to fill the screen
menu
is used to present user actions and other options in the app's activities