Materi 4 - Mengenal Layout di Andrid Studio - TeachMeSoft

Materi 4 - Mengenal Layout di Andrid Studio

Materi 4 - Mengenal Layout

Kompetensi dan Indikator


Kompetensi Dasar:

  • Mengenal dan memahami berbagai macam layout yang dapat digunakan pada Android
  • Dapat mengimplementasikan layout dalam mendesain User Interface

Indikator:
  • Mahasiswa dapat membuat aplikasi dengan memanfaatkan berbagai macam layout yang ada
  • Mahasiswa dapat membuat tampilan UI yang menarik


Materi


A    Dasar Materi 

Layout adalah komponen dasar dalam pembentukan (UI) User Interface dan merupakan container utama untuk komponen-komponen lain dalam aplikasi Android. Dalam satu tampilan aplikasi Android bisa terdapat lebih dari satu Layout dengan adanya satu layout sebagai parent. Dan memungkinkan bisa terbentuknya nested layout dalam satu file UI xml.

B     Linear Layout

Akan menempatkan komponen-komponen didalamnya secara horizontal atau vertical. LinearLayout memiliki atribut weight untuk masing-masing child view yang terdapat didalam LinearLayout yang  berguna untuk mengontrol porsi ukuran view secara Relatif dalam sebuah ruang (space) yang tersedia

➜ Linier Layout Horizontal
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp"
    android:orientation="horizontal"
    tools:context="id.ac.uty.layouting.LinierLayout">

    <TextView
        android:id="@+id/edittext1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Masukkan Text"
        android:inputType="text" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Go" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Cancel" />

</LinearLayout>

➜ Linier Layout Vertical
Perbedaan dengan Horizontal Linier Layout hanya terletak pada "orientation"
android:orientation="vertical"

Akan menghasilkan tampilan sebagai berikut (kiri : horizontal; kanan :vertical):



C     Relative Layout

Layout yang paling flexible dikarenakan posisi dari masing-masing komponen didalamnya dapat  mengacu secara relatif pada komponen yang lainnya dan juga dapat mengacu secara relatif ke batas layar.

Contoh Relative Layout:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="30dp"
    android:paddingRight="30dp"
    android:paddingLeft="10dp">

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="Button 1" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_marginTop="0dp"
        android:layout_marginRight="140dp"
        android:text="Button 2" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:layout_marginRight="31dp"
        android:layout_marginBottom="47dp"
        android:text="Button 3" />

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button2"
        android:layout_alignLeft="@+id/button2"
        android:layout_marginLeft="2dp"
        android:layout_marginTop="219dp"
        android:text="Button 4" />

    <Button
        android:id="@+id/button5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button2"
        android:layout_alignLeft="@+id/button2"
        android:layout_marginLeft="103dp"
        android:layout_marginTop="398dp"
        android:text="Button 5" />

</RelativeLayout>

Akan menghasilkan tampilan sebagai berikut :


D       Grid/Table Layout

Grid Layout adalah layout yang memberikan  kemudahan dengan mengakomodir komponen didalamnya ke dalam bentuk Grid (Kolom  dan Baris). GridLayout merupakan komponen layout yang sangat flexibel dan dapat dimanfaatkan untuk menyederhanakan pembuatan Layout UI yang bersifat kompleks dan bersarang yang terdapat di komponen Layout lainnya.

Contoh Grid/Table Layout :
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="10dp"
    android:shrinkColumns="*"
    android:stretchColumns="*">

    <!-- Baris 1 Kolim 1 -->
   <TableRow
       android:id="@+id/tableRow1"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:gravity="center_horizontal" >
       
       <TextView
           android:id="@+id/textView9"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:textAlignment="center"
           android:text="Configure Email"
           android:textSize="20dp"
           android:textStyle="bold" />
   </TableRow>
    
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="You can easily configure your email address.."
        android:layout_marginTop="20dp"
        android:textSize="10dp" />
    
    <!-- Baris 2 Kolom 2 -->
    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp">
        
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Email Address"
            android:textSize="14dp"/>
        
        <EditText
            android:id="@+id/editText1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"/>
    </TableRow>

    <!-- Baris 3 Kolom 3 -->
    <TableRow
        android:id="@+id/tableRow3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Password"
            android:textSize="14dp"/>

        <EditText
            android:id="@+id/editText2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textPassword"/>
    </TableRow>

    <!-- Baris 4 Kolom 1 -->
    <TableRow
        android:id="@+id/tableRow4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="right">

        <Button
            android:id="@+id/button1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Configure"/>
    </TableRow>
</TableLayout>

Akan menghasilkan tampilan sebagai berikut :


E     Frame Layout

Layout ini adalah layout yang paling sederhana. Layout ini akan membuat komponen yang ada didalamnya menjadi menumpuk atau saling menutupi satu dengan yang lainnya. Frame layout dapat digunakan untuk menyisipkan widget ke dalam widget lainnya. Komponen yang paling pertama pada layout ini akan menjadi bagian bawah dari komponen-komponen diatasnya. Berikuti lustrasi dari penggunaan FrameLayout terhadap child view yang dimiliki didalamnya.

Contoh Frame Layout :
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- Green Background -->
    <TextView
        android:background="#FFFFFF00"
        android:gravity="bottom"
        android:id="@+id/textView1"
        android:layout_height="200dp"
        android:layout_width="200dp"
        android:text="Contoh Text Satu"/>

    <!-- Blue Background -->
    <TextView
        android:background="#FF8004FF"
        android:gravity="bottom"
        android:id="@+id/textView2"
        android:layout_height="150dp"
        android:layout_width="150dp"
        android:text="Contoh Text Dua"
        android:layout_gravity="left|top"/>

</FrameLayout>

Akan menghasilkan tampilan sebagai berikut :



Latihan


  1. Buat Masing-masing 1 Form dengan format layout yang berbeda-beda buat dengan isian data pribadi hingga alamat sekolah.
  2. Jelaskan langkah-langkah membuatnya
  3. Diberikan dosen pengampu






Disqus comments