安卓RecyclerView出错

8
今天我试着使用新的Android RecyclerView。我创建了一个空白的项目,并将以下内容添加到它的布局中:
<android.support.v7.widget.RecyclerView
    android:id="@+id/my_recycler_view"
    android:scrollbars="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

在gradle构建依赖项中,我已经添加了以下内容:
compile 'com.android.support:support-v4:21.0.0'
compile 'com.android.support:recyclerview-v7:21.+'
compile 'com.android.support:cardview-v7:21.+'

但是activity_main.xml的渲染仍然显示以下错误:
Rendering Problems The following classes could not be instantiated:
- android.support.v7.widget.RecyclerView (Open Class, Show Exception)
Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE  Exception Details java.lang.UnsupportedOperationException: Unsupported Service: accessibility   at com.android.layoutlib.bridge.android.BridgeContext.getSystemService(BridgeContext.java:465

我在网络上找不到自己的解决方案,因为每个人都说“在您的gradle构建中实现以下依赖项:...”,而我已经添加了。

有人能提供一个解决方案吗?

问候 Tak3r07

编辑: onCreate:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

请添加您的 onCreate() 代码。您可能会漏掉一些内容。 - mt0s
@mt0s已添加 - 但我还没有更改任何内容,因为这是一个全新的项目。 - Tak3r07
请检查我的答案。 - mt0s
8个回答

7
我认为在使用RecyclerView时,至少需要设置布局管理器。
如果你阅读这里的文档:
与ListView或GridView等其他适配器支持视图不同,RecyclerView允许客户端代码为子视图提供自定义布局安排。这些安排由RecyclerView.LayoutManager控制。必须为RecyclerView提供LayoutManager才能使其正常工作。 在实例化RecyclerView后,您可以尝试设置LayoutManager,如下所示:
recyclerView.setLayoutManager(new LinearLayoutManager(this));

(稍后更改为更适合您需求的LayoutManager)

很抱歉回复晚了,我没有时间继续那个项目。 我现在创建了一个LinearLayoutManager和一个适配器,并将两者都添加到了recyclerview中,但我仍然收到相同的错误。 - Tak3r07
@Tak3r07 LayoutManager 无法在 xml 中设置,这就是为什么 RecyclerView 的预览不起作用的原因。 - MyDogTom
1
@MyDogTom 它可以在xml中进行设置:https://developer.android.com/reference/android/support/v7/widget/RecyclerView.html#attr_android.support.v7.recyclerview:layoutManager - Xiao

3

这似乎是 Android SDK 21 中的一个 bug。如果升级到 SDK 22,则问题应该会消失。


1

1
刚升级到SDK 22,问题已经解决。

1

只需在您的XML查看器中更改屏幕顶部的API级别,并将其设置为21个API级别,它就可以工作。希望这可以帮助您。


0

在依赖项块下,在您的 build.gradle 文件中添加此行代码

implementation 'com.android.support:recyclerview-v7:25.1.0'

0

一切看起来都很好,尝试使缓存失效/重新启动。我认为这对你有用。可能存在缓存问题。


1
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community

-1

你好,希望这能帮到你。 你需要从你的视图中移除滚动条属性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接