相关疑难解决方法(0)

RecyclerView LayoutManager不同的跨度计数在不同的行上

我想要一个RecyclerView.LayoutManager允许我为不同的行指定不同的跨度计数作为重复模式.例如2,3有10个项目看起来像这样:

  -------------
  |     |     |
  |     |     |
  -------------
  |   |   |   |
  |   |   |   |
  -------------
  |     |     |
  |     |     |
  -------------
  |   |   |   |
  |   |   |   |
  -------------
Run Code Online (Sandbox Code Playgroud)

我能想到的方法与破解这个GridLayoutManagerSpanSizeLookup,但已经有人想出了一个更清洁的方式做到这一点?

android android-recyclerview

27
推荐指数
2
解决办法
2万
查看次数

嵌套在垂直 RecyclerView 中的垂直 RecyclerView

我花了几个小时/几天来阅读这个主题,但仍然找不到有用的东西。我试图RecyclerView在另一个垂直滚动的行中放置一个固定高度的垂直滚动RecyclerView

大部分建议都是“将垂直滚动RecyclerView放入另一个垂直滚动中是一种犯罪行为RecyclerView”......但我不明白为什么这如此糟糕。

事实上,行为几乎与 StackOverflow 上的许多页面完全相同(例如,这个……实际上这个问题,至少在移动设备上查看时),其中代码部分是固定的(或最大) 高度和垂直滚动,并且包含在本身垂直滚动的页面中。发生的情况是,当焦点在代码部分时,滚动发生在该部分内,当它到达该部分滚动范围的上/下端时,则滚动发生在外页内。这是很自然的,不是邪恶的。

这是我的 recycler_view_row_outer.xml(外层中的一行RecyclerView):

<com.google.android.material.card.MaterialCardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    style="@style/MyCardView"
    app:cardElevation="4dp"
    app:strokeColor="?attr/myCardBorderColor"
    app:strokeWidth="0.7dp"
    card_view:cardCornerRadius="8dp" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <TextView
            style="@style/MyTextView.Section"
            android:id="@+id/list_title" />

        <LinearLayout
            style="@style/MyLinearLayoutContainer"
            android:id="@+id/list_container"
            android:layout_below="@+id/list_title" >
        </LinearLayout>

    </RelativeLayout>

</com.google.android.material.card.MaterialCardView>
Run Code Online (Sandbox Code Playgroud)

这是我的recycler_view_row_inner.xml(内部的一行RecyclerView):

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/my_constraint_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/list_container" >

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recycler_view_inner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scrollbarStyle="outsideOverlay"
        android:scrollbars="vertical"
        app:layout_constrainedHeight="true"
        app:layout_constraintBottom_toBottomOf="@+id/my_constraint_layout"
        app:layout_constraintEnd_toEndOf="@+id/my_constraint_layout"
        app:layout_constraintHeight_max="750dp"
        app:layout_constraintHeight_min="0dp"
        app:layout_constraintStart_toStartOf="@+id/my_constraint_layout"
        app:layout_constraintTop_toTopOf="@+id/my_constraint_layout" >
    </androidx.recyclerview.widget.RecyclerView> …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

4
推荐指数
2
解决办法
401
查看次数

标签 统计

android ×2

android-recyclerview ×2