【问题标题】:HorizontalScrollView inside Horizontal RecylerView not scrollingHorizo​​ntal RecylerView 内的 Horizo​​ntalScrollView 不滚动
【发布时间】:2016-08-22 06:30:57
【问题描述】:

我知道不建议在另一个可滚动视图中添加可滚动视图,但此要求无法更改。 所以我有一个具有 LinearLayoutManager 方向水平的常规 RecylerView。

 LinearLayoutManager manager2 = new LinearLayoutManager(context,LinearLayoutManager.HORIZONTAL, false);
 rec_products.setLayoutManager(manager2);

它内部有一个自定义视图,在适配器中膨胀

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="400dp"
    android:layout_height="wrap_content"
    android:background="@color/productblue"
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
    android:orientation="vertical">



    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/icon_abc"
        android:scaleType="fitXY"/>


    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:weightSum="5">

            <LinearLayout
                style="@style/products_item_options"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="@dimen/product_layout_icon_size"
                    android:layout_height="@dimen/product_layout_icon_size"
                    android:layout_gravity="center"
                    android:src="@drawable/icon_cart_new"/>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginTop="5dp"
                    android:gravity="center"
                    android:text="Add"
                    android:textColor="@android:color/black"/>
            </LinearLayout>

            <LinearLayout
                style="@style/products_item_options"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="@dimen/product_layout_icon_size"
                    android:layout_height="@dimen/product_layout_icon_size"
                    android:layout_gravity="center"
                    android:src="@drawable/icon_cart_new"/>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginTop="5dp"
                    android:gravity="center"
                    android:text="Color Option"
                    android:textColor="@android:color/black"/>
            </LinearLayout>

            <LinearLayout
                style="@style/products_item_options"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="@dimen/product_layout_icon_size"
                    android:layout_height="@dimen/product_layout_icon_size"
                    android:layout_gravity="center"
                    android:src="@drawable/icon_emailquotegray"/>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginTop="5dp"
                    android:gravity="center"
                    android:text="Email Quote"
                    android:textColor="@android:color/black"/>
            </LinearLayout>

            <LinearLayout
                style="@style/products_item_options"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="@dimen/product_layout_icon_size"
                    android:layout_height="@dimen/product_layout_icon_size"
                    android:layout_gravity="center"
                    android:src="@drawable/icon_brochureemailgray"/>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginTop="5dp"
                    android:gravity="center"
                    android:text="Email Brochure"
                    android:textColor="@android:color/black"/>
            </LinearLayout>

            <LinearLayout
                style="@style/products_item_options"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:orientation="vertical">

                <ImageView
                    android:layout_width="@dimen/product_layout_icon_size"
                    android:layout_height="@dimen/product_layout_icon_size"
                    android:layout_gravity="center"
                    android:src="@drawable/icon_brochureemailgray"/>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginTop="5dp"
                    android:gravity="center"
                    android:text="Check Stock"
                    android:textColor="@android:color/black"/>
            </LinearLayout>

        </LinearLayout>

    </HorizontalScrollView>
</LinearLayout>

在适配器中没有做任何特别的事情,只是常规的 viewholder 膨胀和绑定。 水平滚动视图不滚动。我该怎么做才能解决这个问题?

【问题讨论】:

  • 修复水平滚动视图的宽度。
  • @Ramit 仍然不起作用

标签: android nested android-recyclerview scrollview


【解决方案1】:

当你使用 RecyclerView 时,你需要指定一个 LayoutManager 负责布局视图中的每个项目。 LinearLayoutManager 允许您指定方向,就像普通的 LinearLayout 一样。

要使用 RecyclerView 创建水平列表,您可以执行以下操作:

LinearLayoutManager layoutManager
= new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);

RecyclerView myList = (RecyclerView) findViewById(R.id.my_recycler_view);
myList.setLayoutManager(layoutManager);

【讨论】:

  • 回收站视图无需指定水平滚动视图。
  • 初始化回收站视图并添加我提到的代码
  • 我的意思是在你的主要活动中创建一个回收器视图并初始化
  • 我认为你没有理解这个问题。我的每个项目都需要一个水平滚动视图,我在一个 recylerview 中显示它也可以水平滚动。我已经完成了所有这些,剩下的唯一问题是当我运行应用程序时,horizo​​ntalscrollview 没有滚动,recylerview 确实滚动。我希望他们都滚动。
  • 你会通过这篇文章更好地了解水平滚动视图abhiandroid.com/ui/scrollview
猜你喜欢
  • 1970-01-01
  • 2022-07-30
  • 2021-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多