Search code examples
androidlistviewandroid-listviewandroid-scrollview

Android add list view with in scroll view and remove scroll from listview


I have a listview with in a scrollview in my app .

I add data to listview at run time, but due to scrollview which is the parent of listview, i am unable to scroll through all elements of listview and only one element of listview is visible at the bottom

so is there any way through i can disable listview scrolling .

Listview is at the bottom of layout

list.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/repeat"
android:orientation="vertical" >

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp
        "
        android:layout_marginRight="10dp"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <ImageView
                android:id="@+id/close"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:padding="10dp"
                android:src="@drawable/closeicon" />

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:orientation="horizontal" >

                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1" >

                    <TextView
                        android:id="@+id/loved"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_marginTop="5dp"
                        android:text="Loved"
                        android:textColor="@color/d0d2d3"
                        android:textSize="@dimen/twelevetweleve" />
                </RelativeLayout>

                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1" >

                    <TextView
                        android:id="@+id/viewed"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_marginTop="5dp"
                        android:text="viewed"
                        android:textColor="@color/d0d2d3"
                        android:textSize="@dimen/twelevetweleve" />
                </RelativeLayout>
            </LinearLayout>
        </LinearLayout>

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <ImageView
                android:id="@+id/share"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_centerVertical="true"
                android:src="@drawable/newshareicon" />

            <com.nearify.android.RoundedImageView
                android:id="@+id/eventimage"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true"
                android:src="@drawable/noimagenearify" />

            <ImageView
                android:id="@+id/loveicon"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:src="@drawable/loveicon" />
        </RelativeLayout>

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <TextView
                android:id="@+id/name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:padding="5dp"
                android:text="gggggggggggg"
                android:textColor="@color/whitecolor"
                android:textSize="@dimen/fourteen"
                android:textStyle="bold" />
        </RelativeLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:orientation="horizontal" >

            <ImageView
                android:layout_width="16dp"
                android:layout_height="16dp"
                android:layout_gravity="center_vertical"
                android:background="@drawable/timeicon" />

            <TextView
                android:id="@+id/starts"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="10dp"
                android:text="starts  ongoing"
                android:textColor="@color/d0d2d3"
                android:textSize="@dimen/twelevetweleve" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:orientation="horizontal" >

            <ImageView
                android:layout_width="16dp"
                android:layout_height="16dp"
                android:layout_gravity="center_vertical"
                android:background="@drawable/timeicon" />

            <TextView
                android:id="@+id/ends"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="10dp"
                android:text="ends  ongoing"
                android:textColor="@color/d0d2d3"
                android:textSize="@dimen/twelevetweleve" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:orientation="horizontal" >

            <ImageView
                android:layout_width="16dp"
                android:layout_height="16dp"
                android:background="@drawable/venueicon" />

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/address"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:text="address  ongoing"
                    android:textColor="@color/d0d2d3"
                    android:textSize="@dimen/twelevetweleve" />

                <TextView
                    android:id="@+id/addressdetail"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:layout_marginTop="10dp"
                    android:text="addressdetail  ongoing"
                    android:textColor="@color/d0d2d3"
                    android:textSize="@dimen/twelevetweleve" />
            </LinearLayout>
        </LinearLayout>

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="1dp"
            android:layout_marginLeft="-10dp"
            android:layout_marginTop="20dp"
            android:background="@color/d0d2d3" >
        </RelativeLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:orientation="horizontal" >

            <LinearLayout
                android:id="@+id/calender"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:orientation="vertical" >

                <ImageView
                    android:layout_width="32dp"
                    android:layout_height="32dp"
                    android:layout_gravity="center_horizontal"
                    android:background="@drawable/calendaricon" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal"
                    android:text="calender"
                    android:textColor="@color/d0d2d3"
                    android:textSize="@dimen/twelevetweleve" />
            </LinearLayout>

            <LinearLayout
                android:id="@+id/direction"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:orientation="vertical" >

                <ImageView
                    android:layout_width="32dp"
                    android:layout_height="32dp"
                    android:layout_gravity="center_horizontal"
                    android:background="@drawable/calendaricon" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal"
                    android:text="direction"
                    android:textColor="@color/d0d2d3"
                    android:textSize="@dimen/twelevetweleve" />
            </LinearLayout>

            <LinearLayout
                android:id="@+id/ticket"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:orientation="vertical" >

                <ImageView
                    android:layout_width="32dp"
                    android:layout_height="32dp"
                    android:layout_gravity="center_horizontal"
                    android:background="@drawable/calendaricon" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal"
                    android:text="ticket"
                    android:textColor="@color/d0d2d3"
                    android:textSize="@dimen/twelevetweleve" />
            </LinearLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:background="@drawable/custombordertrans"
            android:orientation="horizontal" >

            <RelativeLayout
                android:id="@+id/Details"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_weight="1" >

                <TextView
                    android:id="@+id/Detailstext"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:padding="8dp"
                    android:text="Details"
                    android:textColor="@color/d0d2d3"
                    android:textSize="@dimen/twelevetweleve" />
            </RelativeLayout>

            <RelativeLayout
                android:layout_width="1dp"
                android:layout_height="fill_parent"
                android:background="@color/d0d2d3" >
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/peoples"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_weight="1" >

                <TextView
                    android:id="@+id/peoplestext"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:padding="8dp"
                    android:text="Related Peoples"
                    android:textColor="@color/d0d2d3"
                    android:textSize="@dimen/twelevetweleve" />
            </RelativeLayout>

            <RelativeLayout
                android:layout_width="1dp"
                android:layout_height="fill_parent"
                android:background="@color/d0d2d3" >
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/artists"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_weight="1" >

                <TextView
                    android:id="@+id/artiststext"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:padding="8dp"
                    android:text="Related Artist"
                    android:textColor="@color/d0d2d3"
                    android:textSize="@dimen/twelevetweleve" />
            </RelativeLayout>
        </LinearLayout>

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:padding="5dp"
                android:text="Details"
                android:textColor="@color/d0d2d3"
                android:textSize="@dimen/twelevetweleve" />
        </RelativeLayout>

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <ListView
                android:id="@+id/list"
                android:layout_width="wrap_content"

                android:layout_height="wrap_content"
                android:visibility="gone" >
            </ListView>

            <WebView
                android:id="@+id/web"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:visibility="gone" />
        </RelativeLayout>

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
        </RelativeLayout>
    </LinearLayout>
</ScrollView>


Solution

  • Finally i found the solution, make custom expandable listview in java

    ExpandableListView.java

    public class ExpandableListView extends ListView{
    ExpandableListView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
        }
    
    ExpandableListView(Context context) {
            super(context);
        }
    
        public ExpandableListView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        @Override
        public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    
            // Calculate entire height by providing a very large height hint.
            // View.MEASURED_SIZE_MASK represents the largest height possible.
            int expandSpec = MeasureSpec.makeMeasureSpec(MEASURED_SIZE_MASK, MeasureSpec.AT_MOST);
            super.onMeasure(widthMeasureSpec, expandSpec);
    
            ViewGroup.LayoutParams params = getLayoutParams();
            params.height = getMeasuredHeight();
        }
    }
    

    list.xml (Usage)

    <com.example.ExpandableListView
                    android:id="@+id/list"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                     >
                </com.example.ExpandableListView>