如何将可扩展的 ListView 放入 ScrollView

Posted

技术标签:

【中文标题】如何将可扩展的 ListView 放入 ScrollView【英文标题】:How to put expandable ListView inside a ScrollView 【发布时间】:2015-08-26 13:36:42 【问题描述】:

我似乎无法在我的片段中滚动。我在 editText 和 textViews 中间有一个可扩展的列表视图,在可扩展的列表视图下方有一个 textView 和 editText。我无法向下滚动到底部的 textView 和 editText。我该如何格式化,这样我就可以一直向下滚动而无需触摸 listView?

<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
android:fillViewport="true">

<LinearLayout
android:layout_
android:layout_
android:layout_below="@id/toolbar"
android:background="#FFFFFF"
android:orientation="vertical"
tools:context="edu.bradley.apawelczyk.trackapp.Add_Athlete_Fragment"
android:weightSum="1"
android:padding="20dp"
android:id="@+id/addAthleteLayout">

<TextView
    android:layout_
    android:layout_
    android:text="Add New Athlete"
    android:id="@+id/txtTitle"
    android:gravity="center"
    android:textColor="#000000"
    android:textSize="30dp"/>
<TextView
    android:layout_
    android:layout_
    android:id="@+id/txtName"
    android:text="Name: "
    android:textColor="#000000"
    android:paddingBottom="10dp"/>
<EditText
    android:layout_
    android:layout_
    android:id="@+id/editFirstName"
    android:hint="First Name"
    android:background="@drawable/edit_text_background"
    android:textColorHint="#BBBBBB"
    android:textColor="#000000"
    android:paddingLeft="10dp" />
<EditText
    android:layout_
    android:layout_
    android:id="@+id/editLastName"
    android:hint="Last Name"
    android:background="@drawable/edit_text_background"
    android:textColorHint="#BBBBBB"
    android:textColor="#000000"
    android:paddingLeft="10dp"
    android:layout_marginTop="10dp"/>
<TextView
    android:layout_
    android:layout_
    android:id="@+id/txtAge"
    android:text="Age: "
    android:textColor="#000000"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"/>
<EditText
    android:layout_
    android:layout_
    android:id="@+id/editAge"
    android:hint=""
    android:background="@drawable/edit_text_background"
    android:textColorHint="#BBBBBB"
    android:textColor="#000000"
    android:paddingLeft="10dp" />
<TextView
    android:layout_
    android:layout_
    android:id="@+id/txtGrade"
    android:text="Grade: "
    android:textColor="#000000"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"/>
<EditText
    android:layout_
    android:layout_
    android:id="@+id/editGrade"
    android:hint=""
    android:background="@drawable/edit_text_background"
    android:textColorHint="#BBBBBB"
    android:textColor="#000000"
    android:paddingLeft="10dp" />
<TextView
    android:layout_
    android:layout_
    android:id="@+id/txtEvent"
    android:text="Event: "
    android:textColor="#000000"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"/>
<ExpandableListView
    android:layout_
    android:layout_
    android:id="@+id/eventsList"
    android:choiceMode="singleChoice"
    android:divider="#000000"
    android:dividerHeight="2dp"
    android:focusable="false">
</ExpandableListView>
<TextView
    android:layout_
    android:layout_
    android:id="@+id/txtTier"
    android:text="Tier: "
    android:textColor="#000000"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"/>
<EditText
    android:layout_
    android:layout_
    android:id="@+id/editTier"
    android:hint=""
    android:background="@drawable/edit_text_background"
    android:textColorHint="#BBBBBB"
    android:textColor="#000000"
    android:paddingLeft="10dp" />

【问题讨论】:

【参考方案1】:

您尝试创建的布局不会以这种方式工作,ListView 并不意味着在ScrollView 中,因为触摸事件将被消耗。对于带有可滚动标题的ListView,您必须使用addHeaderView() 方法添加那些(类似于页脚)。但是,仅使用 XML 无法做到这一点。

您的主要 XML 应该只包含 ExpandableListView,然后我建议创建一个带有 LinearLayout 的 XML,其中包含您想要在 ListView 上方拥有的所有视图,另一个 XML 包含下面的视图。在您的代码中,只需膨胀这些 XML 并使用它们调用 addHeaderView()addFooterView()。此外,如果您使用onItemClickListener,请注意标题视图将移动视图索引。

【讨论】:

【参考方案2】:

可扩展列表视图/列表视图不接收手势,因为滚动视图处理它们。尝试更改布局。

【讨论】:

如何更改布局?

以上是关于如何将可扩展的 ListView 放入 ScrollView的主要内容,如果未能解决你的问题,请参考以下文章

如何将可运行文件放入捆绑包中?

Android如何将listview放入查看寻呼机片段

如何将可拖动的元素放入可排序的元素中,放置的项目不是原始元素而是自定义助手

如何做到这一点,以便当我将可动态调整大小的 JPanel 放入 JScrollPane 时它​​可以工作?

如何将可扩展列表视图的选定子视图数据从片段发送到父活动?

将可拖动对象放入可排序对象后,jQuery Click 事件不起作用