Android:ScrollView不滚动 [英] Android: ScrollView is not scrolling
问题描述
我正在尝试创建一个带有标题的布局,在其下方有一个横幅,然后在该横幅下有几个ListView.我希望除标题外的整个屏幕都可滚动.现在我知道ListView不会在ScrollView中滚动,因此我将ListView的高度设置得足够大以显示所有项目.问题是,即使进行了这些更改,我仍然可以看到ListView正在独立滚动,并且整个屏幕也无法滚动.
I am trying to create a layout with a header, a banner below it, and then a couple of ListView under the banner. I want the the complete screen to be scrollable except the header. Now I know that ListView does not scroll within a ScrollView so I have set the height of the ListView big enough to show all the items. The problem is that, even after these changes, I see that the ListView is scrolling independently and the complete screen is not scrollable.
`
<include
android:id="@+id/logo_header"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
layout="@layout/screen_header" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_weight="0.8"
android:background="#f2f2f2">
<include
android:id="@+id/mcUser"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
layout="@layout/complaint_reporters_details"
android:layout_weight="2" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:weightSum="9"
android:layout_weight="2">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:weightSum="1"
android:layout_weight="3"
android:focusableInTouchMode="false"
android:paddingLeft="30dp"
android:paddingRight="30dp">
<ImageView android:id="@+id/mcShowList"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:scaleType="fitXY"
android:src="@drawable/list_icon"
android:layout_weight="0.2" />
<TextView android:id="@+id/mcShowList_label"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:textStyle="bold"
android:textSize="12sp"
android:textColor="#929292"
android:maxLines="1"
android:text="List"
android:layout_weight="0.8"
android:layout_marginTop="-8dp" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:weightSum="1"
android:layout_weight="3"
android:gravity="center_vertical|center_horizontal"
android:paddingLeft="30dp"
android:paddingRight="30dp">
<ImageView android:id="@+id/mcShowMap"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:scaleType="fitXY"
android:src="@drawable/map_view"
android:layout_weight="0.2"/>
<TextView android:id="@+id/mcShowMap_label"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:textStyle="bold"
android:textSize="12sp"
android:textColor="#929292"
android:maxLines="1"
android:text="Map"
android:layout_weight="0.8"
android:layout_marginTop="-8dp" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:weightSum="1"
android:layout_weight="3"
android:focusableInTouchMode="false"
android:paddingRight="30dp"
android:paddingLeft="30dp">
<ImageView android:id="@+id/mcShowAnalytics"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:scaleType="fitXY"
android:src="@drawable/analytics_icon"
android:layout_weight="0.2" />
<TextView android:id="@+id/mcShowAnalytics_label"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:textStyle="bold"
android:textSize="12sp"
android:textColor="#929292"
android:maxLines="1"
android:text="Analytics"
android:layout_weight="0.8"
android:layout_marginTop="-10dp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<RelativeLayout
android:layout_weight="0.2"
android:layout_width="fill_parent"
android:layout_height="400dp">
<FrameLayout
android:id="@+id/mcMapContainer"
android:layout_width="match_parent"
android:layout_height="fill_parent"/>
<LinearLayout
android:id="@+id/mcAnalyticsContainer"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="fill_parent">
<FrameLayout
android:id="@+id/mcChartContainer"
android:layout_gravity="center"
android:layout_width="200dp"
android:layout_height="200dp"/>
<GridView
android:id="@+id/mcAmenityList"
android:layout_height="0dp"
android:layout_weight="7"
android:layout_width="match_parent"
android:numColumns="3"/>
</LinearLayout>
<LinearLayout
android:id="@+id/mcListContainer"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="1">
<TextView
android:text="Open Complaints"
android:textColor="@color/red_btn_bg_color"
android:textSize="18dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical|center_horizontal"
android:padding="5dp" />
<ListView
android:id="@+id/mcListOpen"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:text="Closed Complaints"
android:textColor="@color/red_btn_bg_color"
android:textSize="18dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical|center_horizontal"
android:padding="5dp" />
<ListView
android:id="@+id/mcListClosed"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</ScrollView>
`
推荐答案
将滚动视图的高度从match_parent更改为wrap_content.因为滚动视图仅在其总高度大于父视图的高度时才启用滚动.即替换
Change height of scroll view from match_parent to wrap_content. Because scroll view only enable scrolling if its total height is more than the height of parent view. i.e. replace
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
使用以下代码:
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true">
这篇关于Android:ScrollView不滚动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!