我有以下布局结构:
RelativeLayout
-LinearLayout(Vertical)
| ...
| ...
-LinearLayout(Vertical)
ListView
ListView
有一堆由 ArrayAdapter
设置的项目。目前,只有 ListView
是可滚动的,第一个 LinearLayout
留在原处。但是,我希望整个屏幕都可以滚动,所以如果用户滚动得足够远,如果有足够的列表项,ListView
可能会占据整个屏幕。
此图像说明了所需的行为(滚动前后)
红框是第一个LinearLayout
,绿框是LinearLayout
加上ListView
感谢您宝贵的帮助!
最佳答案
如果您不必使用 RelativeLayout,您可以尝试使用 CoordinatorLayout 的不同结构,如下所示:
<CoordinatorLayout >
<AppBarLayout >
<CollapsingToolbarLayout >
<!-- first layout with the property layout_scrollFlags="scroll" -->
</CollapsingToolbarLayout >
</AppBarLayout >
<ListView > <!-- or RecyclerView to be more updated -->
</CoordinatorLayout >
如果您必须使用 RelativeLayout,您可以选择在 Scrollview 中实现全部(性能不佳并重新发明轮子),或者您可以将 View 添加为 ListView 的标题
-----为了清楚起见编辑这里是我的布局
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="it.italia.playground.CollapseActivity">
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:padding="@dimen/padding16"
app:layout_collapseMode="parallax">
<ImageView
android:id="@+id/image"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_alignParentTop="true"
android:layout_centerInParent="true"
android:maxHeight="@dimen/padding16"
android:scaleType="centerCrop"
android:src="@drawable/img"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/image"
android:layout_centerInParent="true"
android:layout_marginTop="@dimen/padding16"
android:text="text title"
/>
</RelativeLayout>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_layout"></include>
</android.support.design.widget.CoordinatorLayout>
关于Android滚动整个屏幕而不仅仅是 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36748028/