我有一个问题,我想用自定义颜色或渐变填充扩展空间。但是,RecyclerView的工作方式是通过在项目之间留下空白区域来扩展行,从而导致看到白色背景(屏幕截图)或任何背景颜色。在扩展动画之后,空白空间被填充,其中onBindViewHolder被调用。
这可以用某种方式解决,我可以用自定义视图填充这个空白空间,这样它可以很好地获得epxanded而不会出现颜色闪烁吗?
有没有办法可以将侦听器附加到动画上并用虚拟视图覆盖它?
在显示子视图之前:
显示子视图后(组扩展)
编辑:按要求添加了RecyclerView的xml
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
style="@style/myRecyclerViewStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</FrameLayout>
group_item.xml
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/list_group_item_height"
android:background="@android:color/holo_green_light"
android:clickable="true"
android:foreground="?attr/selectableItemBackground">
<TextView
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"/>
</FrameLayout>
child_item.xml
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/list_item_height"
android:background="@android:color/holo_green_light"
android:clickable="true">
<TextView
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"/>
</FrameLayout>
即使我将所有高度更改为wrap_content仍然相同,动画只是epxands视图并留下一个空的空间(recyclerView的背景),我想以某种方式填写。
这取自此库:https://github.com/h6ah4i/android-advancedrecyclerview
答案 0 :(得分:0)
这应该是因为您可能在适配器类中提供了match_parent
。希望这有用:)