0

我有一个问题,我想用自定义颜色或渐变填充扩展空间。然而,RecyclerView 的工作方式是通过在项目之间留一个空白空间来扩展行,这会导致看到白色背景(屏幕截图)或任何背景颜色。展开动画后,空白空间被填充,其中 onBindViewHolder 被调用。

这是否可以以某种方式解决,我可以用自定义视图填充这个空白空间,所以它可以很好地扩展而不会出现颜色闪烁?

有没有一种方法可以将侦听器附加到动画并在那时用虚拟视图覆盖它?

在显示子视图之前:

就在显​​示子视图之前

显示子视图后(展开组)

显示子视图后(展开组)

编辑:按要求添加了 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 它仍然相同,动画只是扩展视图并留下一个空白空间(recyclerView 的背景),我想以某种方式填充。

这取自这个库:https ://github.com/h6ah4i/android-advancedrecyclerview

4

1 回答 1

0

这应该是因为您可能已经match_parent在您的适配器类中给出了。希望这会有所帮助:)

于 2017-02-16T09:22:15.100 回答