Android - ScrollView问题

时间:2015-02-21 16:02:55

标签: android scrollview expandablelistview

我在处理滚动视图处理添加到其中的内容方面遇到了一些麻烦。这是我的应用程序的两个屏幕截图,一次我将一个expandlistview添加到一个嵌套在LinearLayout内的scrollview,然后另一个我删除了scrollview。你会注意到,当没有滚动视图时,内容高度会保持不变。如何通过滚动视图实现这一目标?

这有滚动视图

With ScrollView

这没有滚动视图

Without ScrollView

以下是我的活动布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/edit_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#F3F3F3"
    android:orientation="vertical"
    android:paddingTop="25dip">

    <ScrollView
        android:id="@+id/scrollView"
        android:fillViewport="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <LinearLayout
            android:id="@+id/gridViewLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dip"
            android:layout_marginRight="10dip"
            android:orientation="vertical">

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dip"
                android:background="#61BF1A"
                android:gravity="center_vertical"
                android:padding="10dip">

                <TextView
                    android:id="@+id/store"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="false"
                    android:layout_alignParentStart="true"
                    android:layout_alignParentTop="false"
                    android:layout_centerVertical="true"
                    android:layout_marginRight="2dp"
                    android:gravity="center_vertical"
                    android:text="@string/store"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="#FFFFFF" />

                <TextView
                    android:id="@+id/store_name"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="false"
                    android:layout_centerVertical="true"
                    android:layout_toEndOf="@+id/store"
                    android:layout_toRightOf="@+id/store"
                    android:ems="8"
                    android:gravity="center_vertical"
                    android:text="Freshii Woodbridge"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="#FFFFFF" />

                <TextView
                    android:id="@+id/change_store_label"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentEnd="true"
                    android:layout_alignParentRight="true"
                    android:layout_alignParentTop="true"
                    android:ems="4"
                    android:gravity="center_vertical"
                    android:lines="2"
                    android:minLines="2"
                    android:text="@string/change_store"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="#FFFFFF" />
            </RelativeLayout>


        </LinearLayout>
    </ScrollView>
</LinearLayout>

我动态地将ExpandedListViews附加到&#34; gridViewLayout&#34;线性布局。有关滚动视图的场景发生的原因以及我如何解决它的任何想法?

---- ExpandlistView布局----

<ExpandableListView
    android:background="#FFFFFF"
    android:id="@+id/gridView2"
    android:groupIndicator="@null"
    android:listSelector="@android:color/transparent"
    android:cacheColorHint="@android:color/transparent"
    android:layout_width="match_parent"
    android:layout_height="fill_parent" />

3 个答案:

答案 0 :(得分:0)

如果我弄错了,你应该将ScrollView身高改为'match_parent n#39;

 <ScrollView
    android:id="@+id/scrollView"
    android:fillViewport="true"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

答案 1 :(得分:0)

一般来说,没有足够的信息重新使用ExpandableListView,但租约考虑这个:

  

注意:您不能使用值wrap_content   android:如果是XML的ExpandableListView的layout_height属性   父母的大小也没有严格规定(例如,如果   父是ScrollView你不能指定wrap_content,因为它   也可以是任何长度。但是,如果是,则可以使用wrap_content   ExpandableListView父级具有特定大小,例如100像素。

来源:http://developer.android.com/reference/android/widget/ExpandableListView.html

答案 2 :(得分:0)

将边距添加到展开式列表视图的顶部和底部。

<ExpandableListView
android:background="#FFFFFF"
android:id="@+id/gridView2"
android:groupIndicator="@null"
android:listSelector="@android:color/transparent"
android:cacheColorHint="@android:color/transparent"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp" />

编辑:

尝试android:dividerHeight="10dp"它应该有用。