使listview不可滚动或使listview在scrollview

时间:2017-03-13 10:33:41

标签: android android-layout listview scrollview android-scrollview

我在一个scrollview中有4个listview。我知道scrollview不需要使listview可滚动。但我的问题是我在一个活动中有太多内容,所以必须使整个布局可滚动,否则我会错过内容。直到内容适合屏幕,即使在scrollview内,listviews也可以滚动(图1)。整个布局在显示内部不适合的那一刻,即当滚动条出现时,列表视图是不可滚动的(图2)。

The original layout

After adding items

隐藏自动填充文本视图(ACTV)下方的文本视图。只有在ACTV中单击项目时,textview才会显示。 不知何故,我想让listview始终可滚动或扩展listview的显示,因为我添加了越来越多的项目。

activity_centre.xml(这有滚动视图)

<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_centre"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.nlss.custom_diet.Centre">


<TextView
    android:text="Breakfast"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:id="@+id/bf"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true" />

<TextView
    android:text="TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/bfac"
    android:layout_alignEnd="@+id/bf"
    android:layout_marginTop="10dp"
    android:layout_marginLeft="64dp"
    android:visibility="gone"
    android:id="@+id/bftvdisp" />

<TextView
    android:text="TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/bfac"
    android:layout_alignStart="@+id/breakfastAddBT"
    android:visibility="gone"
    android:layout_marginTop="10dp"
    android:id="@+id/bfcal" />

<ListView android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/bfListView"
    android:layout_centerHorizontal="true"
    android:scrollbarAlwaysDrawVerticalTrack="true"
    android:layout_below="@+id/bftvdisp">
</ListView>

<ListView android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/lnListView"
    android:layout_centerHorizontal="true"
    android:scrollbarAlwaysDrawVerticalTrack="true"
    android:layout_below="@+id/lntvdisp">
</ListView>

<ListView android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/dnListView"
    android:layout_centerHorizontal="true"
    android:scrollbarAlwaysDrawVerticalTrack="true"
    android:layout_below="@+id/dntvdisp">
</ListView>

<ListView android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/snListView"
    android:layout_centerHorizontal="true"
    android:scrollbarAlwaysDrawVerticalTrack="true"
    android:layout_below="@+id/sntvdisp">
</ListView>


<TextView
    android:text="Lunch"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/bfListView"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="10dp"
    android:id="@+id/ln" />

<AutoCompleteTextView
    android:id="@+id/bfac"
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:layout_below="@+id/bf"
    android:layout_marginTop="10dp"
    android:hint="Select food" />

<AutoCompleteTextView
    android:id="@+id/lnac"
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:layout_alignStart="@+id/bfac"
    android:layout_below="@+id/ln"
    android:layout_marginTop="10dp"
    android:layout_toStartOf="@+id/breakfastAddBT"
    android:hint="Select food" />

<TextView
    android:text="Dinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/lnListView"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="10dp"
    android:id="@+id/dn" />

<AutoCompleteTextView
    android:id="@+id/dnac"
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:layout_alignEnd="@+id/lnac"
    android:layout_alignStart="@+id/lnac"
    android:layout_below="@+id/dn"
    android:layout_marginTop="10dp"
    android:hint="Select food" />

<TextView
    android:text="TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/dnac"
    android:visibility="gone"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="10dp"
    android:id="@+id/dntvdisp" />

<TextView
    android:text="TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/dnac"
    android:visibility="gone"
    android:layout_alignStart="@+id/dinnerAddBT"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="10dp"
    android:id="@+id/dncal" />

<TextView
    android:text="Snacks"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/dnListView"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="10dp"
    android:id="@+id/sn" />

<TextView
    android:text="TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:visibility="gone"
    android:id="@+id/lntvdisp"
    android:layout_below="@+id/lnac"
    android:layout_alignEnd="@+id/bf"
    android:layout_marginTop="10dp" />

<TextView
    android:text="TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:visibility="gone"
    android:id="@+id/lncal"
    android:layout_alignStart="@+id/LunchAddBT"
    android:layout_below="@+id/lnac"
    android:layout_marginTop="10dp" />

<AutoCompleteTextView
    android:hint="Select food"
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:id="@+id/snac"
    android:layout_marginTop="10dp"
    android:layout_below="@+id/sn"
    android:layout_alignStart="@+id/dnac"
    android:layout_alignEnd="@+id/dnac" />

<TextView
    android:text="TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/snac"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="10dp"
    android:visibility="gone"
    android:id="@+id/sntvdisp" />

<TextView
    android:text="TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/snac"
    android:layout_alignStart="@+id/snacksAddBT"
    android:layout_marginTop="10dp"
    android:visibility="gone"
    android:id="@+id/sncal" />

<Button
    android:id="@+id/snacksAddBT"
    android:layout_width="90dp"
    android:layout_height="40dp"
    android:layout_alignStart="@+id/dinnerAddBT"
    android:layout_alignTop="@+id/snac"
    android:text="Add"/>

<Button
    android:id="@+id/LunchAddBT"
    android:layout_width="90dp"
    android:layout_height="40dp"
    android:layout_alignStart="@+id/breakfastAddBT"
    android:layout_alignTop="@+id/lnac"
    android:text="Add" />

<Button
    android:id="@+id/dinnerAddBT"
    android:layout_width="90dp"
    android:layout_height="40dp"
    android:layout_alignStart="@+id/LunchAddBT"
    android:layout_alignTop="@+id/dnac"
    android:text="Add" />

<Button
    android:id="@+id/breakfastAddBT"
    android:layout_width="90dp"
    android:layout_height="40dp"
    android:layout_alignBottom="@+id/bfac"
    android:layout_marginStart="14dp"
    android:layout_toEndOf="@+id/bfac"
    android:text="Add" />

scrollview.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rowTextView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:textSize="16sp" >
</TextView>

2 个答案:

答案 0 :(得分:0)

使用以下代码段

{ "presets": ["es2015", "es2017"] }

答案 1 :(得分:0)

您可以使用NestedScroll Containers。您可以通过添加android:nestedScrollingEnabled =&#34; true&#34;来为子滚动视图启用它。在XML声明中或通过显式调用setNestedScrollingEnabled(true)。此方法仅适用于运行API 21及更高版本的设备。

对于API 20之前的旧版本和Android版本,您可以使用支持库中的类。首先,您必须用NestedScrollView替换ScrollView。后者实现NestedScrollingParent和NestedScrollingChild,因此它可以用作父或子滚动容器。