Skip to content Skip to sidebar Skip to footer

Android Auto Merge Two Listview In One Screen

My view look like:

Solution 1:

Try the below example: Layout :

<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:weightSum="3" ><ListViewandroid:id="@+id/list2"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_weight="1"android:background="@drawable/face"android:cacheColorHint="#00000000" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:layout_weight="1"android:orientation="vertical" ><TextViewandroid:id="@+id/text"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Header"android:visibility="visible" /><ListViewandroid:id="@+id/list"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/background"android:cacheColorHint="#00000000" /></LinearLayout></LinearLayout>

In your class

ListViewAdapterarrayAdapter=newListViewAdapter(this, values);

            listview.setAdapter(arrayAdapter);

        ListViewAdapterarrayAdapter2=newListViewAdapter(this, values2);

            listview2.setAdapter(arrayAdapter2);

Add these two lines in onCreate with your listview:

Utility.setListViewHeightBasedOnChildren(listview);
        Utility.setListViewHeightBasedOnChildren(listview2);

Create a inner class in your Activity:

//Test scrollview custompublicstaticclassUtility {
        publicstaticvoidsetListViewHeightBasedOnChildren(ListView listView) {
            ListAdapter listAdapter = listView.getAdapter(); 
            if (listAdapter == null) {
                // pre-conditionreturn;
            }

            int totalHeight = 0;
            for (int i = 0; i < listAdapter.getCount(); i++) {
                View listItem = listAdapter.getView(i, null, listView);
                listItem.measure(0, 0);
                totalHeight += listItem.getMeasuredHeight();
            }

            ViewGroup.LayoutParams params = listView.getLayoutParams();
            params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
            listView.setLayoutParams(params);
        }
    }

Code taken from : listViewNotScrolling

It would definitely work! :)

Solution 2:

If you want to create Listview with Header. Then Use Section Header Listview.

Refer this Example.

Hope it will help you!!

OR

If its fix that Only Two Listview & one Header Between them

Then

1) Take Only one Listview.

2) Use Custom Adapter & Custom Layout for Listview Row.

3) Add Two Extra TextView in Custom Layout

Listing First ListView Data

  • (Fixed TextView - Header -Put its Visibility VISIBLE)
  • (Extra 1 TextView - Header -Put its Visibility GONE )
  • (Extra 2 TextView - Header -Put its Visibility GONE )

Listing Second ListView Data

  • (Fixed TextView - Header -Put its Visibility GONE )
  • (Extra 1 TextView - Header -Put its Visibility VISIBLE )
  • (Extra 2 TextView - Header -Put its Visibility VISIBLE )

Post a Comment for "Android Auto Merge Two Listview In One Screen"