Android在滚动视图中添加列表视图,并从列表视图中删除滚动

时间:2014-10-12 06:08:10

标签: android listview android-listview android-scrollview

我的应用中的滚动视图中有一个列表视图。

我在运行时向listview添加数据,但由于scrollview是listview的父级,我无法滚动列表视图的所有元素,并且底部只能看到listview的一个元素

所以有任何方法可以禁用listview滚动。

Listview位于布局的底部

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>

1 个答案:

答案 0 :(得分:2)

最后我找到了解决方案,在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(用法)

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