Android滚动整个屏幕而不仅仅是 ListView

标签 android android-layout listview android-coordinatorlayout

我有以下布局结构:

RelativeLayout
  -LinearLayout(Vertical)
  |  ...
  |  ...
  -LinearLayout(Vertical)
     ListView

ListView 有一堆由 ArrayAdapter 设置的项目。目前,只有 ListView 是可滚动的,第一个 LinearLayout 留在原处。但是,我希望整个屏幕都可以滚动,所以如果用户滚动得足够远,如果有足够的列表项,ListView 可能会占据整个屏幕。

此图像说明了所需的行为(滚动前后)Desired layout behaviour before and after scrolling 红框是第一个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/

相关文章:

android - 使用自定义图标字体时如何修复 Android Lollipop 中的字体基线?

android - 根据值对 ListView 自定义项目元素进行着色

java - 为一个 Activity 中的多个列表定义 onItemClick 行为的正确方法?

android - 在图像中的某些位置粘贴按钮

android - 任务 ':vision-camera-code-scanner:checkDebugAndroidTestAarMetadata' 执行失败

android - 布局宽度等于高度

c# - 无法将对象列表绑定(bind)到 Asp.net 中的 Listview

java - java.util.Currency 中的 getSymbol() 根据 API 级别返回不同的值

android - Multiautocompletetextview,仅当用户在 '@' 键之后按下一个键时才显示自动完成下拉列表(就像在 FB 应用程序中提到的那样)

android - 以编程方式显示 WebView 下面有一个 TextView