Tuesday, 9 June 2015

Linear Layout, Relative Layout, Table Layout

Dalam pemprograman android, ada beberapa layout yang digunakan untuk menempatkan bermacam-macam “view” seperti button dan text. Untuk membuat layout cukup mudah, melalui folder res/layout dalam project, tempatkan file .xml di dalam folder tersebut.
File .xml dapat dibuat dengan 2 cara :
  1. Buka Eclipse kamu
  2. Create File -> New  -> Android Application Project
  3. Klik kanan di folder res/layout -> New -> Android XML File
Atau
  1. Buat .txt di folder res/layout
  2. Rename file .txt menjadi .xml
Ada 3 macam layout(dari 6 macam) yang secara luas digunakan. Layout-layout tersebut adalah :
1. Linear Layout
Linear Layout adalah Layout yang umum digunakan, terutama bagi pemula. Layout ini menempatkan view secara horizontal atau vertical, bergantung pada kode yang digunakan.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<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:orientation="vertical"
    tools:context=".MainActivity" >
 
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
 
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/click"
        />
     
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        >
        <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
 
        <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/click"
        />
         
         
    </LinearLayout>
     
</LinearLayout>
Tampilan yang terjadi setelah kode di eksekusi
Linear Layout Image


2. Relative Layout
Relative Layout memiliki karakteristik menempatkan view secara relatif. Posisi dari setiap view bergantung kepada view yang lain. Mudahnya adalah, programmer memiliki kebebasan untuk menempatkan view yang diinginkan. Penempatan satu view dapat berupa di sisi kanan, kiri, atas, ataupun bawah dari view lain. Jika tidak di tetapkan di sisi mana view akan berada, maka dapat terjadi penumpukan antara satu view dengan view yang lain, tentunya programmer tidak menginginkan hal itu terjadi bukan . Jujur, ini adalah layout kesukaan saya. Awal nya memang sulit, namun semakin mudah jika sudah terbiasa.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world"
        android:layout_alignParentLeft="true"
        android:id="@+id/tv1"
        />
 
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/click"       
        android:layout_toRightOf="@id/tv1"
        />
     
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/click2"
        android:layout_alignParentBottom="true"
        />
</RelativeLayout>
 Tampilan yang terjadi setelah kode di eksekusi
Relative Layout
3. Table Layout
Table Layout memiliki karakteristik yang mirip dengan pembuatan layout di HTML. Jika anda familiar dengan pemprograman web berjenis html, <table> dan <TableLayout /> adalah 2 hal yang hampir sama. TableLayout mengatur tampilan berdasarkan kolom dan baris. Dan jangan lupa untuk selalu menambahkan tag <TableRow /> jika ingin membuat baris baru dalam layout.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<TableLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff"
    android:shrinkColumns="*"  android:stretchColumns="*"
    >
     
    <TableRow
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        >
        <TextView
            android:layout_width="match_parent" android:layout_height="wrap_content"
            android:textSize="18sp" android:text="@string/hello_world"  android:layout_span="3"
            android:padding="18dip" android:background="#b0b0b0"
            android:textColor="#000"/>
    </TableRow>
      
     
   <TableRow
        android:id="@+id/tableRow1"
        android:layout_height="wrap_content"
        android:layout_width="match_parent">
        <TextView
            android:id="@+id/tv1" android:text="@string/hello_world"
            android:layout_weight="1" android:background="#dcdcdc"
            android:textColor="#000000"
            android:padding="20dip" android:gravity="center"/>
        <Button
            android:id="@+id/but1" android:text="@string/click"
            android:layout_weight="1" android:background="#d3d3d3"
            android:textColor="#000000"
            android:padding="20dip" android:gravity="center"/>
        
    </TableRow>
     
    </TableLayout>
 Tampilan yang terjadi setelah kode di eksekusi
Table Layout

Kurang lebih seperti itu. Masih banyak method yang dapat di explore untuk membuat penempatan tiap view semakin bervariasi, yang mana kamu dapat membaca langsung dokumentasi nya di developer.android.com
Sebenarnya saya kurang suka memprogram layout dalam xml file. Yang lebih menarik adalah memprogram dalam bentuk inisialisasi masing-masing layout secara “programmatically” alias di declare di file .java.

No comments:

Post a Comment