更新到v23.2.0后,recyclerview项目有奇怪的行为:空间非常大。更新到设计库23.2.0后菜单溢出图标变为黑色(应用程序有暗动作栏)。
更新 在我的nexus 5溢出图标&回收器视图行是固定的,但在Galaxy Tab 4溢出图标仍然是黑色。
更新2 如果您有空间距问题,请修复视图的布局参数(match_parent - > wrap_content),因为RecyclerView现在将根据其内容的大小调整自身大小。 阅读此博客 http://android-developers.blogspot.am/2016/02/android-support-library-232.html
RecyclerView小部件为创建列表和网格以及支持动画提供了一个先进而灵活的基础。此版本为LayoutManager API带来了令人兴奋的新功能:自动测量!这允许RecyclerView根据其内容的大小调整自身大小。这意味着现在可以使用以前不可用的方案,例如使用WRAP_CONTENT作为RecyclerView的维度。您会发现所有内置的LayoutManagers现在都支持自动测量。
由于此更改,请务必仔细检查布局参数 您的项目视图:以前忽略的布局参数(例如 现在,滚动方向的MATCH_PARENT将得到充分尊重。
更新3 链接到描述操作栏中黑色图标问题的问题 Issue 201918
更新4 在帖子下看到我的回答,图标问题也解决了
答案 0 :(得分:20)
你获得大型开放空间的原因是因为match_parent。它之前没有正常工作,但现在新版本的工作方式不同。您只需要更新到wrap_content而不是match_parent,因为这会导致布局与父级匹配,从而为您提供大空格。
RecyclerView小部件为创建列表和网格以及支持动画提供了一个先进而灵活的基础。此版本为LayoutManager API带来了令人兴奋的新功能:自动测量!这允许RecyclerView根据其内容的大小调整自身大小。这意味着现在可以使用以前不可用的方案,例如使用WRAP_CONTENT作为RecyclerView的维度。您会发现所有内置的LayoutManagers现在都支持自动测量。
http://android-developers.blogspot.co.uk/2016/02/android-support-library-232.html
答案 1 :(得分:1)
似乎有两个新库,support-vector-drawable和support-animated-vector-drawable,必需,因为appcompat-v7使用了vector drawables(Issue discussion)。只需使用以下内容更新build.gradle,即可添加对矢量绘图的支持,黑色图标的问题将得到解决。
<强>的build.gradle 强>
在gradle插件版本
上将以下行添加到构建gradle库中// Gradle Plugin 2.0+
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
// Gradle Plugin 1.5
android {
defaultConfig {
generatedDensities = []
}
// This is handled for you by the 2.0+ Gradle Plugin
aaptOptions {
additionalParameters "--no-version-vectors"
}
}
<强>更新强> 对于AppCompat用户,使用AppCompat 23.2.1不再需要用于启用23.2 blog post中描述的支持向量drawable的标志。但是,如果您希望将支持向量drawable用于您自己的资源,您仍然可以利用app:srcCompat属性。