Kamis, 06 Juni 2013

Menampilkan ListView dan ScrollView di Android dalam Satu Tampilan Layout

Menampilkan ListView dan ScrollView di Android dalam Satu Tampilan LayoutMenampilkan ListView dan ScrollView di Android dalam Satu Tampilan Layout kelihatannya sederhana, tetapi implementasinya sangat sulit. Karena pada dasarnya ListView jika dimasukkan dalam ScrollView tidak akan mau Scroll, sebaliknya Scrollview juga tidak mau dimasukkan di dalam ListView hehe.

Solusinya ScrollView dan ListView harus disendirikan tetapi harus diatur dengan Layout yang melingkupi keduanya, misal memakai LinearLayout agar keduanya tidak saling mendesak atau menutupi.

Contoh aplikasinya kira-kira seperti ini, buatlah Project Android baru, di layout activity_main.xml buat seperti ini :



<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <ScrollView
        android:id="@+id/scrollView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_weight="1" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/hello_world" />

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

            <EditText
                android:id="@+id/editText1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:ems="10" />

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

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

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

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

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

        </LinearLayout>
    </ScrollView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_weight="1"
        android:layout_height="200dp"
        android:orientation="vertical" >

        <ListView
            android:id="@+id/listView1"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:entries="@array/daftar" >

        </ListView>
    </LinearLayout>

</LinearLayout>

Untuk kode program di MainActivity.java tidak perlu diubah :

package com.amijaya.listviewandscrollview; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity { // http://cariprogram.blogspot.com // nuramijaya@gmail.com @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }
Untuk konfigurasi di AndroidManifest.xml juga tidak perlu diubah :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.amijaya.listviewandscrollview"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.amijaya.listviewandscrollview.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Hasilnya :

Menampilkan ListView dan ScrollView di Android dalam Satu Tampilan Layout

Project selengkapnya silakan download disini. Jika kesulitan download seperti ini caranya.

Semoga manfaat.

2 komentar: