当前位置: 首页 > 知识库问答 >
问题:

在嵌套滚动视图中的RecycerView加载所有数据,而不是在滚动时调用一个一个的图像

孙恩
2023-03-14

在我的应用程序中,我使用了tabHost Activity,在tabHost的第一个选项卡中,我使用了TabActivity,我加载了500多个图像。

使用嵌套滚动视图:

我在RecycerView中使用了嵌套滚动视图。当加载主页时,它最初加载了所有500张图像,然后显示主页。这样会导致内存出错。

我需要滚动放置在RecycerView顶部的相对布局。所以我使用了嵌套滚动视图。但它对我不起作用。

tab_home_layout:

<?xml version="1.0" encoding="utf-8"?>

<android.support.v4.widget.NestedScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"

        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
     >

<LinearLayout
    android:id="@+id/tab_home_activity"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

        <RelativeLayout
            android:id="@+id/home_layout_top_2_recycler"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:background="@drawable/layout_border"
            >

            <ImageView
                android:id="@+id/img_user_home_tab_recycler"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:paddingLeft="5dp"
                android:paddingRight="5dp"
                android:layout_centerVertical="true"
                android:contentDescription="@string/cont_desc"
                android:src="@drawable/profile_pic_blue" />

            <TextView
                android:id="@+id/tv_user_mind_home_tab_recycler"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginLeft="5dp"
                android:layout_toRightOf="@+id/img_user_home_tab_recycler"
                android:hint="@string/whats_on"
                android:textColor="@color/Black"
                android:textSize="@dimen/txt_size" />
        </RelativeLayout>

    <android.support.v7.widget.RecyclerView
            android:id="@+id/rv_list_tab_home_recycler"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scrollbars="none"
            android:visibility="visible" />

     </LinearLayout>
</android.support.v4.widget.NestedScrollView>

下面我愿意分享我到目前为止所做的尝试。

共有1个答案

宗政子琪
2023-03-14

您可以在任何您喜欢的地方使用CoordinatorLayout,类似于其他布局,如LinearLayout,甚至RelationVelayout。如果您希望Relationvelayout滚动以响应RecycerView,只需将它们放置在具有AppBarLayoutCoordinatorLayoutCoordinatorLayout中。以下是修改后的布局:

<android.support.design.widget.CoordinatorLayout
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <RelativeLayout
            android:id="@+id/home_layout_top_2_recycler"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:background="@drawable/layout_border"
            app:layout_scrollFlags="scroll">

            <ImageView
                android:id="@+id/img_user_home_tab_recycler"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:paddingLeft="5dp"
                android:paddingRight="5dp"
                android:layout_centerVertical="true"
                android:contentDescription="@string/cont_desc"
                android:src="@drawable/profile_pic_blue" />

            <TextView
                android:id="@+id/tv_user_mind_home_tab_recycler"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginLeft="5dp"
                android:layout_toRightOf="@+id/img_user_home_tab_recycler"
                android:hint="@string/whats_on"
                android:textColor="@color/Black"
                android:textSize="@dimen/txt_size" />
            </RelativeLayout>

    </android.support.design.widget.AppBarLayout>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/rv_list_tab_home_recycler"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scrollbars="none"
        android:visibility="visible"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

</android.support.design.widget.CoordinatorLayout>

将其更改为您的首选项,但请确保将RelationvelayoutLayout_Height设置为Wrap_Content以外的内容。

如果此coordinatorlayout位于另一个coordinatorlayout内部,请使用此答案中的nestedcoordinatorlayout作为您的内部coordinatorlayout

 类似资料:
  • 我可以向您展示比告诉您更好的内容,所以这里是我的XML代码的结构: 因此,如您所见,我有一个,其中包含片段并支持滚动。 问题: 我有几个片段,每个片段都有自己的布局,应该在一次放纵中向下滚动。 一切都很完美,一切都可以顺利滚动,但是当我添加一个 并使用 包装它时,它无法正常工作。当我向下滚动时,将手指从屏幕上移开后,它会立即停止。 看看代码: 如果删除,它可以工作。 你知道那可能是什么吗? 谢谢你

  • 我使用嵌套的Scrollview来包装recyclerview和其他按钮。它工作得很好,但我注意到当我滚动它时,它并不平滑。请指导如何使滚动平滑。

  • 我有一个奇怪的问题与和(与设计支持库22.2.0) 使用小于的内容,我应该有一个固定的内容。然而,尝试上下滚动内容,我可以得到内容被移位,再也不会出现在自己的位置上。 这里的代码:

  • 我有一个水平ScrollView,它有两个元素:CardView和水平RecycerView。所以,当用户水平滚动时,我希望这两个元素滚动。 我想有这样的东西:Goal,橙色的线是CardView,黄色的线是RecycerView。当用户滚动时,两个元素滚动,如下所示:Scrolled Goal。 现在在我的应用程序中,当用户滚动时,只有RecycerView滚动。CardView保持在他的位置。

  • 我看了很多问题,但列出的解决方案都没有解决我的问题:Scrollview不会滚动到底部的空白处 ScrollView不会滚动到底部 (Android) ScrollView不会一直滚动到我的线性布局的底部 我有一个具有以下布局的应用程序,其中包含ScrollView中的LinearLayout 基本上,这个布局被用于一个片段。在这个片段中,我用查询网站得到的字符串为tvPowers和tvAbili

  • 问题内容: 我有一个具有静态高度和样式的元素中的搜索结果列表。我只想加载搜索结果的前x个(例如20个),并在用户滚动到包含搜索结果的元素的底部时加载另一个x个结果。 谁能向我解释我将如何做?我找到了一些示例,但所有示例都使用了整个文档的滚动值,而不是单个。我正在使用jQuery,如果有关系的话。 问题答案: 对我来说,听起来像是您想在滚动条即将结束时检测滚动条的位置。 在jquery组上四处搜寻时