在主题级别的RecyclerView样式

我正在尝试在主题级别为RecyclerView实现通用样式参数。 与ListView ,我使用了这样的东西:

定义了一种风格:

  vertical 10dp vertical  

后来在我的自定义主题中使用:

 @style/StyleListView 

这适用于ListView 。 但是,我无法为RecyclerView反映这一点,因为我认为它适用于任何types的列表。

那么,是否有任何可用于RecyclerView预定义样式属性,例如android:recyclerViewStyle或其他什么?

如果没有,那我怎样才能在主题层面实现这一目标?

遗憾的是,没有相当于RecylerView listViewStyle

我认为您可以做的最好的事情是为您的RecyclerView定义一个样式,然后让您想要使用哪个样式使用style="@style/RecyclerViewStyle" (如果您只想定义一些属性,例如您的示例) )。

如果您真的不想为每个RecyclerView执行此操作,那么您必须将其子类化并在构造函数中为defStyle返回非零参数。 但是,您必须使用新的子类替换XML中的RecyclerView所有实例。

正如@Jason Robinson所说,您可以通过这种方式inheritanceRecyclerView,将RecyclerView替换为xml中的RecyclerViewStyleable ,然后使用recyclerViewStyle样式

 < ?xml version="1.0" encoding="utf-8"?>      

 public class RecyclerViewStyleable extends RecyclerView { public RecyclerViewStyleable(Context context) { super(context); } public RecyclerViewStyleable(Context context, AttributeSet attrs) { this(context, attrs, R.attr.recyclerViewStyle); } public RecyclerViewStyleable(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } }