在android studio中预览水平recyclerview

fed*_*aol 40 android android-studio android-recyclerview

我发现了如何使用预览列表项

tools:listitem="@layout/my_item_layout"
Run Code Online (Sandbox Code Playgroud)

但android studio正在将recyclerview预览为垂直列表.有没有办法告诉Android Studio我会附加一个水平,LinearLayoutManager以便它可以预览水平列表?

小智 82

添加LayoutManager并设置水平方向.

这是一个例子:

<android.support.v7.widget.RecyclerView
    android:id="@+id/homesRecyclerView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layoutManager="android.support.v7.widget.LinearLayoutManager"
    android:layout_centerVertical="true"
    />
Run Code Online (Sandbox Code Playgroud)

  • 你也可以使用工具命名空间(即`tools:orientation`和`tools:layoutManager`)添加它们,然后它只影响IDE预览,你可以继续在代码中设置这些值. (14认同)
  • 使用 AndroidX 库时,将 `app:layoutManager="android.support.v7.widget.LinearLayoutManager"` 替换为 `app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"` :) (6认同)
  • @gMale不,工具命名空间不起作用. (2认同)

Gab*_*tti 8

只需在您的布局中使用app:layoutManagerandroid:orientation属性,并使用tools命名空间添加它们。
就像是:

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:orientation="horizontal"
    app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
    tools:listitem="@layout/ly_item"
    tools:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
    tools:orientation="horizontal"
    ../>
Run Code Online (Sandbox Code Playgroud)

  • 这应该是最重要的答案。“工具”仅影响预览。“app:”实际上将您的 RV 连接到布局管理器,这可能不是首选行为 (2认同)

Man*_*ahi 7

接受的答案准确无误。对于 androidx,只需在您的 recyclerView 中使用它

app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" android:orientation="horizontal"


Nic*_*zzi 6

如果您使用的是androidx库:

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/homesRecyclerView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
    android:layout_centerVertical="true"
    />
Run Code Online (Sandbox Code Playgroud)