如何在ScrollView中放置可扩展的ListView

时间:2015-06-11 03:15:59

标签: android android-layout listview android-listview expandablelistview

我似乎无法在我的片段中滚动。我在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_height="wrap_content"
android:layout_width="match_parent"
android:fillViewport="true">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
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_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Add New Athlete"
    android:id="@+id/txtTitle"
    android:gravity="center"
    android:textColor="#000000"
    android:textSize="30dp"/>
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/txtName"
    android:text="Name: "
    android:textColor="#000000"
    android:paddingBottom="10dp"/>
<EditText
    android:layout_width="300dp"
    android:layout_height="40dp"
    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_width="300dp"
    android:layout_height="40dp"
    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_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/txtAge"
    android:text="Age: "
    android:textColor="#000000"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"/>
<EditText
    android:layout_width="300dp"
    android:layout_height="40dp"
    android:id="@+id/editAge"
    android:hint=""
    android:background="@drawable/edit_text_background"
    android:textColorHint="#BBBBBB"
    android:textColor="#000000"
    android:paddingLeft="10dp" />
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/txtGrade"
    android:text="Grade: "
    android:textColor="#000000"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"/>
<EditText
    android:layout_width="300dp"
    android:layout_height="40dp"
    android:id="@+id/editGrade"
    android:hint=""
    android:background="@drawable/edit_text_background"
    android:textColorHint="#BBBBBB"
    android:textColor="#000000"
    android:paddingLeft="10dp" />
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/txtEvent"
    android:text="Event: "
    android:textColor="#000000"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"/>
<ExpandableListView
    android:layout_width="400dp"
    android:layout_height="match_parent"
    android:id="@+id/eventsList"
    android:choiceMode="singleChoice"
    android:divider="#000000"
    android:dividerHeight="2dp"
    android:focusable="false">
</ExpandableListView>
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/txtTier"
    android:text="Tier: "
    android:textColor="#000000"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"/>
<EditText
    android:layout_width="300dp"
    android:layout_height="40dp"
    android:id="@+id/editTier"
    android:hint=""
    android:background="@drawable/edit_text_background"
    android:textColorHint="#BBBBBB"
    android:textColor="#000000"
    android:paddingLeft="10dp" />

2 个答案:

答案 0 :(得分:1)

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

您的主XML应该只包含ExpandableListView,然后我建议创建一个包含LinearLayout的{​​{1}}的XML,其中包含您要在ListView之上的所有视图和另一个XML观点将会贬低。在您的代码中,只需对这些XML进行充气,然后使用它们调用addHeaderView()addFooterView()。此外,如果您使用onItemClickListener,请注意标题视图将移动视图索引。

答案 1 :(得分:0)

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