Android Programming with Kotlin for Beginners
上QQ阅读APP看书,第一时间看更新

Exploring Android UI design

We will see with Android UI design that so much of what we learn is context-sensitive. The way that a given widget's x attribute will influence its appearance might depend on a widget's y attribute, or even on an attribute on another widget. It isn't easy to learn this verbatim. It is best to expect to gradually achieve better and faster results with practice.

For example, if you play with the designer by dragging and dropping widgets onto the design, the XML code that is generated will vary considerably depending upon which layout type you are using. We will see this as we proceed through this chapter.

This is because different layout types use different means to decide the position of their children. For example, the LinearLayout, which we will explore next, works very differently to ConstraintLayout, which was added by default to our project in Chapter 1, Getting Started with Android and Kotlin.

This information might initially seem like a problem, or even a bad idea, and it certainly can be a little awkward. What we will begin to learn, however, is that this clear abundance of layout options and their individual quirks are a good thing, because they give us almost unlimited design potential. There are very few layouts you can imagine that are not possible to achieve.

As implied, however, this almost unlimited potential comes with a bit of complexity. The best way to start to get to grips with this is to build some working examples of several types. In this chapter, we will see three – a LinearLayout, a ConstraintLayout, and a TableLayout. We will see how to make things easier using the distinctive features of the visual designer, and we will also pay some attention to the XML that is auto-generated to make our understanding more rounded.