RecyclerView中的onBindView上的setAlpha()在第一次显示时不起作用

Nic*_*ila 14 android android-layout android-viewholder android-recyclerview

在RecyclerView.Adapter中使用以下代码:

onBindViewHolder(VH holder, int position){
   holder.itemView.setAlpha(0.5f);
}
Run Code Online (Sandbox Code Playgroud)

第一次显示该项目时不会显示Alpha.但是,如果您离开屏幕并返回,则会准确显示Alpha.正在设置该值,但在再次显示之前不会显示该值.有关如何让setAlpha()在首次查看时生效的任何想法.

Nic*_*ila 18

经过进一步调查后,只有在使用animator(例如android.support.v7.widget.DefaultItemAnimator)时才会发生这种情况,这将清除为视图设置的alpha.您可以使用

RecyclerView.setItemAnimator(null);

和alpha将保持设置

  • 如果您确实需要物品打火机,这并不能真正解决问题 (4认同)

ale*_*ett 8

RecyclerView默认的动画修改的阿尔法集itemView的集合ViewHolder

将您的itemView布局包裹在中,FrameLayout然后修改以下子项的Alpha FrameLayoyt

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:id="@+id/system_modifies_my_alpha">

    <FrameLayout
        android:id="@+id/view_holder_bind_modifies_my_alpha">
        <!-- your children go here-->
    </FrameLayout>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)