【问题标题】:Android - ScrollView IssueAndroid - 滚动视图问题
【发布时间】:2015-02-21 16:02:54
【问题描述】:

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

这有滚动视图

这没有滚动视图

这是我的活动布局:

<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 动态附加到“gridViewLayout”线性布局。任何想法为什么会发生带有滚动视图的场景以及如何解决它?

----展开listView布局----

<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" />

【问题讨论】:

  • 你说的身高是多少?少露一点。
  • 我假设扩展列表视图的高度?我感觉滚动视图的属性导致这种情况发生。本质上,我希望屏幕截图 2 在我将它们添加到滚动视图时发生。
  • 您希望可展开列表视图项目的间距与列表视图项目相同吗?
  • 是的,就像我说的。我希望它看起来与没有滚动视图的屏幕截图完全相同。
  • 您的可展开列表视图的布局在哪里?

标签: android scrollview expandablelistview


【解决方案1】:

如果我理解正确,您应该将 ScrollView 高度更改为 `match_parent'

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

【讨论】:

  • 不。有了这个,它停止显示任何扩展列表视图。
【解决方案2】:

一般来说,ExpandableListView 的信息不足,但请考虑一下:

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

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

【讨论】:

  • 添加了 ExpandableListView 的布局
【解决方案3】:

在可展开列表视图的顶部和底部添加边距。

<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" 应该可以的。

【讨论】:

  • 什么都没有。仍然得到相同的结果
  • 是的,没用。我重构我的代码不再使用滚动视图,而是创建一个嵌套的可扩展列表视图方法,其中每个父单元格将创建另一个可扩展列表视图。
猜你喜欢
  • 2011-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-09
  • 1970-01-01
  • 2011-02-26
相关资源
最近更新 更多