Relative and custom layouts

Inputs, content, or other actions may appear relative to each other or constrained to a parent container. Layouts can be more custom, but make sure to follow consistent grouping, columns, and spacing.

Authentication is a common relative layout, as shown in the following figure. Where a custom layout is described by how the UI elements in relation to each other.

Layouts can also use a combination of layout types. For example, you might pair a carousel or horizontal scroll with vertical cards. Or, you could present a custom chart with vertical list data.

You can present content in scrolling rows or columns with lazy rows and lazy columns.

Full-screen layout is another common layout, as used in immersive mode.

Figure 27: Full screen layout, as used in immersive mode

If you're working with Views instead of Compose, you can use ConstraintLayout to lay out views according to relationships between sibling views and the parent layout, allowing for large and complex layouts. ConstraintLayout lets you build entirely by dragging and dropping instead of editing the XML using the layout editor. Learn more about building a UI with Layout Editor.

Learn more about Compose layout basics and what makes up a composable.

Webviews

A Webview is a view that displays in-app web pages. In most cases, we recommend using a standard web browser, like Chrome, to deliver content to the user. To learn more about web browsers, read the guide for invoking a browser with an intent.