无论我以哪种方式创建,设置其Alpha或在DividerItemDecoration
中为RecyclerView
分配可绘制对象,该可绘制对象在我看来始终是完全不透明的。为什么会这样,如何使分隔线透明?
我在DividerItemDecoration
的源代码中查找,并且私有mDivider
字段的alpha修改无处不在。它调用mDivider.draw(canvas)
,其方法注释为“在其边界内绘制(通过setBounds设置) 尊重可选效果,例如alpha (通过setAlpha设置)和滤色器(通过setColorFilter设置)。“
我尝试将Drawable
创建为具有透明颜色的XML形状。我尝试将Drawable
创建为单个像素PNG。我尝试使用Drawable
以编程方式在setAlpha()
上设置Alpha。我尝试使用Drawable
以编程方式将DividerItemDecoration
分配给setDrawable()
。我尝试用Drawable
在主题中分配@android:attr/listDivider
。所有这些方法产生相同的结果。 Drawable
呈现为完全不透明。
答案 0 :(得分:1)
好,知道了。问题是未设置RecyclerView
的背景色。我一直在寻找在项目视图顶部,底部的分隔线。但是它实际上是在项目视图之间的分隔视图 上绘制,其后是RecyclerView
颜色(如果已设置),或者是包含RecyclerView
的视图颜色。我一直在寻找透明的颜色以通过项目视图的浅色显示,而是通过RecyclerView
后面的默认屏幕暗色显示。问题解决了!