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

Recyclerview内部线性布局平滑滚动

宋凌龙
2023-03-14

我正在一个屏幕上工作,其中有一个产品的工具栏信息和类似产品的列表。

<RelativeLayout>
<toolbar />
<Scrollbar>
    <LinearLayout>
        <ProductInfo />
        <TextView > <!--Similar products -->
        <RecyclerView />
    </LinearLayout>
</Scrollbar>

除了滚动,一切都很好。当recyclerview出现在屏幕上时,滚动不顺畅。我认为这个想法应该是在没有滚动条的情况下使用recycler视图。因为现在看起来我有两个滚动条,这让滚动很痛苦。有没有一种方法可以让我禁用recyclerview的滚动条,并将其拉伸到所需的高度,让父滚动条平滑地滚动我的屏幕?

我使用的是StaggedGridLayoutManager,所以我可以在single Recyclerview中使用productinfo视图和类似的产品作为卡片,因为productinfo需要完整的屏幕宽度,而对于类似的产品,我需要两列。请输入帮助代码:

>
<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    app:navigationIcon="?attr/homeAsUpIndicator"
    android:background="@color/primary"
    android:elevation="10dp" />

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/scrollView"
    android:fillViewport="true">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.v7.widget.CardView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="?attr/actionBarSize">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">


                <ImageView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/imgProduct"
                    android:elevation="10dp"
                    android:src="@drawable/placeholder"
                    android:layout_margin="10dp"
                    android:background="#ffffff" />

                <LinearLayout
                    android:orientation="vertical"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">
                    <LinearLayout
                        android:orientation="horizontal"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/view"
                        android:showDividers="end">

                        <FrameLayout
                            android:id="@+id/frame"
                            android:layout_width="60dp"
                            android:layout_height="60dp">

                            <ImageView
                                android:layout_width="60dp"
                                android:layout_height="60dp"
                                android:id="@+id/imgProfile"
                                android:src="@drawable/ic_action_profile_black" />

                            <ImageView
                                android:id="@+id/circle_crop"
                                android:layout_width="60dp"
                                android:layout_height="60dp"
                                android:src="@drawable/circle_crop" />


                        </FrameLayout>

                        <LinearLayout
                            android:orientation="vertical"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_marginLeft="20dp">

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:textAppearance="?android:attr/textAppearanceMedium"
                                android:text="Medium Text"
                                android:id="@+id/txtUserName"
                                android:layout_gravity="center_vertical"
                                android:textColor="@color/primary_text" />

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:textAppearance="?android:attr/textAppearanceSmall"
                                android:text="Small Text"
                                android:id="@+id/txtTime" />
                        </LinearLayout>

                    </LinearLayout>

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:text="Medium Text"
                        android:id="@+id/txtProductName"
                        android:layout_marginLeft="20dp"
                        android:textColor="@color/primary_text" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:text="Medium Text"
                        android:id="@+id/txtDescription"
                        android:layout_marginLeft="20dp" />

                    <LinearLayout
                        android:orientation="horizontal"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="20dp"
                        android:paddingLeft="5dp"
                        android:paddingRight="5dp"
                        android:id="@+id/tagsContainer">

                    </LinearLayout>

                    <LinearLayout
                        android:orientation="horizontal"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="20dp"
                        android:paddingLeft="5dp"
                        android:paddingRight="5dp">

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:textAppearance="?android:attr/textAppearanceMedium"
                            android:text="10 Likes"
                            android:id="@+id/txtLikes"
                            android:layout_weight="1"
                            android:textSize="16sp"
                            android:textAlignment="center" />

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:textAppearance="?android:attr/textAppearanceMedium"
                            android:text="10 Comments"
                            android:id="@+id/txtComments"
                            android:layout_weight="1"
                            android:textSize="16sp"
                            android:textAlignment="center" />

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:textAppearance="?android:attr/textAppearanceMedium"
                            android:text="100 Times viewed"
                            android:id="@+id/txtViews"
                            android:layout_weight="1"
                            android:textSize="16sp"
                            android:textAlignment="center" />
                    </LinearLayout>

                    <LinearLayout
                        android:orientation="horizontal"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="20dp" >

                        <ImageView
                            android:layout_width="wrap_content"
                            android:layout_height="30dp"
                            android:id="@+id/imgLike"
                            android:src="@drawable/ic_action_like_black"
                            android:layout_weight="1"
                            android:layout_gravity="center_vertical" />

                        <ImageView
                            android:layout_width="wrap_content"
                            android:layout_height="30dp"
                            android:id="@+id/imgComment"
                            android:src="@drawable/ic_action_comment_black"
                            android:layout_weight="1"
                            android:layout_gravity="center_vertical" />

                        <ImageView
                            android:layout_width="wrap_content"
                            android:layout_height="30dp"
                            android:id="@+id/imgShare"
                            android:src="@drawable/ic_action_share_black"
                            android:layout_weight="1"
                            android:layout_gravity="center_vertical" />

                        <Button
                            android:layout_width="wrap_content"
                            android:layout_height="30dp"
                            android:text="Buy"
                            android:id="@+id/btnBuy"
                            android:background="@drawable/btncorner"
                            android:layout_margin="10dp"
                            android:textColor="@color/primary_text"
                            android:elevation="10dp"

                            android:layout_weight="1"
                            android:layout_gravity="center_vertical" />
                    </LinearLayout>


                </LinearLayout>

            </LinearLayout>
        </android.support.v7.widget.CardView>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Loading Similar Products.."
            android:id="@+id/txtSimilarProducts"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginTop="5dp" />

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

        </android.support.v7.widget.RecyclerView>
    </LinearLayout>
</ScrollView>

共有1个答案

常波鸿
2023-03-14

要实现平滑滚动,应使用

 类似资料:
  • 我想实现像Google Play App一样的平滑滚动行为。我尝试过这里提到的解决方案: 解决方案1 解决方案2 解决方案3 但所有上述解决方案都没有像在Google Play应用程序中那样给出预期的结果。以下是xml代码: 如何实现平滑滚动? 编辑:以下是recyclerview适配器 }

  • 我正在开发一个天气应用程序,我想在其中使用中的两个,它的成员是。我想使用一个来显示今天的天气,另一个视图来显示其他日子的天气。如果我只使用一个来显示天气,我的就可以正常工作。我还覆盖了视图`type I应该充气。 的代码: 我已覆盖的的的代码: 无论中的的值是什么,函数总是返回。 有人能告诉我我做错了什么吗?

  • 我有一个包含4个嵌套线性布局的线性布局。我需要隐藏第一个嵌套布局并显示2和3,然后隐藏2和3并显示1。我想用滑动效果对这些过渡进行动画处理。所以有屏幕的第一张幻灯片,然后是2和3幻灯片。我设法使1滑出动画(虽然不是很顺利),但不知道如何从视图继续滑动。去查看。可见。 如果没有动画,我只需在1号做SetVisibly来隐藏它,然后在2/3号做SetVisibly来拍摄它们,这是非常容易出错的,文本重

  • 我正在使用tools:listitem属性在设计布局中使用RecyclerView显示我的视图。问题是,它们总是显示在垂直列表中。有没有办法让设计布局编辑器水平显示它们? 我想要上面的图像,水平显示。在“设计”视图中。不是在应用程序本身,我知道怎么做。

  • 我有一个带有,我想让它顺利工作。 我的问题是,当从内容向上滚动时,我的折叠工具栏不会自动展开,但当它到达顶部时会被阻止。然后我需要再次向上滚动以展开工具栏。 我想实现从内容平滑向上滚动,这将自动扩展我的< code > CollapsingToolbarLayout 这是我的代码: 我发现了一些类似的问题,但没有一个答案对我有用。