如何使回收器视图的最后可见项目具有略有不同的样式。例如,我希望它们显示如下:
如您所见,最后3个项目按比例变灰。我搜索了互联网,但没有成功。任何建议将不胜感激!
答案 0 :(得分:0)
找出用于填充recyler视图的列表的大小,这可能是在适配器构造函数中设置的。我称它为myList。
然后在您的 @Override
public void onBindViewHolder(ViewHolder holder, int position) {
....
if (myList.size() - position < 3) {
holder.wordRow.setTextColor(this.mContext.getResources().getColor(R.color.light_gray));
}
中输入以下内容:
wordRow
TextView
是quote=''
元素的地方
答案 1 :(得分:0)
您可以创建自定义的recyclerView布局,然后将topFadingEdgeLength设置为0.0。这样一来,您只能在最下方显示效果,否则也可以应用于最上方。
使用您的XML
<com.example.BottomFadeEdgeRecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fadingEdge="vertical"
android:fadingEdgeLength="180dp"
android:requiresFadingEdge="vertical">
</com.example.BottomFadeEdgeRecyclerView>
我已将fadingEdgeLength设置为180dp。您可以设置所需的值
还有自定义视图类
import android.content.Context
import android.util.AttributeSet
import androidx.recyclerview.widget.RecyclerView
class BottomFadeEdgeRecyclerView : RecyclerView {
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
override fun getTopFadingEdgeStrength(): Float {
return 0.0f
}
}
您可以创建自定义的scrollView布局,然后将topFadingEdgeLength设置为0.0。这样一来,您只能在最下方显示效果,否则也可以应用于最上方。
您可以使用scrollView包装您的recyclerView
在XML中,如下所示设置您的scrollView
<com.example.BottomFadeEdgeScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fadingEdge="vertical"
android:fadingEdgeLength="180dp"
android:requiresFadingEdge="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.example.BottomFadeEdgeScrollView>
我已将fadingEdgeLength设置为180dp。您可以设置所需的值
这是Kotlin中的文件
import android.content.Context
import android.util.AttributeSet
import android.widget.ScrollView
class BottomFadeEdgeScrollView : ScrollView {
constructor(context: Context?) : super(context)
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
override fun getTopFadingEdgeStrength(): Float {
return 0.0f
}
}