在线性布局内的Recyclerview顺利滚动

时间:2016-08-24 02:55:56

标签: android android-recyclerview

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

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

除滚动外,一切正常。当recyclerview出现在屏幕上时,滚动不顺畅。我认为这个想法应该是没有自己的滚动条的循环器视图。因为现在好像我最终得到两个滚动条让滚动变得痛苦。 有没有办法我可以禁用recyclelerview的滚动条并将其拉伸到占用所需的高度,父滚动条可以顺利滚动我的屏幕?

我使用staggeredGridLayoutManager,因此我可以在单个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 个答案:

答案 0 :(得分:1)

要进行流畅滚动,您应使用<ScrollView>代替<ScrollBar>