Please check off the following points BEFORE submitting a new issue / asking support.
[/] Write a self explanatory Subject.
[/] Check if the issue has already been raised by someone else (see closed issue).
I am using Android Studio 3.0.0 and Kotlin
and importing the library : compile 'eu.davidea:flexible-adapter:5.0.0-rc1'
I've already checked if the actual view is there, so I enabled the layout boundaries option and seen that it is there. It just looks like there is a white scrim above it? I already tried changing the booleans and using the IHeader interface instead of the IFlexible one. I'm not getting what I am doing wrong.
I am using two types of items in my adapter that is why I added a specific type in the declaration of the adapter and using Kotlin extension functions. Please guide if you have any suggestions to improve my code more so to fix this issue
private var adapter: FlexibleAdapter<in IFlexible<in FlexibleViewHolder>> = NewsfeedAdapter(ArrayList(), this, this)
class NewsfeedAdapter<T : IFlexible<in FlexibleViewHolder>> constructor(
list: List<T>,
listeners: Any,
private var clickListener: View.OnClickListener
) : FlexibleAdapter<T>(list, listeners) {
override fun onBindViewHolder(holder: RecyclerView.ViewHolder?, position: Int, payloads: MutableList<Any?>?) {
if (holder is PostFlexible.ViewHolder) {
var item = getItem(position)
holder.btnDelete.setTag(R.id.item_post, item)
holder.btnDelete.setOnClickListener(clickListener)
}
super.onBindViewHolder(holder, position, payloads)
}
}
Here is the class I created for the Scrollable Header
class NewPostItemHeader : IHeader<NewPostItemHeader.ViewHolder> {
private var enabled: Boolean = true
private var swipeable = false
private var hidden = false
private var selectable = false
private var draggable = false
var id: String? = null
var userImage: String? = null
override fun isEnabled(): Boolean {
return enabled
}
override fun setEnabled(enabled: Boolean) {
this.enabled = enabled
}
override fun setSwipeable(swipeable: Boolean) {
this.swipeable = swipeable
}
override fun isSwipeable(): Boolean {
return swipeable
}
override fun isHidden(): Boolean {
return hidden
}
override fun setHidden(hidden: Boolean) {
this.hidden = hidden
}
override fun isSelectable(): Boolean {
return selectable
}
override fun setSelectable(selectable: Boolean) {
this.selectable = selectable
}
override fun isDraggable(): Boolean {
return draggable
}
override fun setDraggable(draggable: Boolean) {
this.draggable = draggable
}
override fun getLayoutRes(): Int {
return R.layout.item_new_post_header
}
override fun equals(other: Any?): Boolean {
if (other != null && other is PostFlexible) {
return other.id == id
}
return false
}
override fun hashCode(): Int {
return id?.hashCode() as Int
}
override fun bindViewHolder(adapter: FlexibleAdapter<out IFlexible<*>>?, holder: ViewHolder, position: Int, payloads: MutableList<Any?>?) {
val context: Context = holder.itemView.context
GlideApp.with(context)
.clear(holder.userImage)
if (CommonUtils.isNotEmpty(userImage.toString())) {
GlideApp.with(context)
.load(userImage)
.placeholder(R.mipmap.icon_user)
.into(holder.userImage)
}
}
override fun createViewHolder(adapter: FlexibleAdapter<out IFlexible<*>>?, inflater: LayoutInflater?, parent: ViewGroup?): ViewHolder {
return ViewHolder(inflater?.inflate(layoutRes, parent, false) as View, adapter)
}
class ViewHolder(
view: View,
adapter: FlexibleAdapter<out IFlexible<*>>?
) : FlexibleViewHolder(view, adapter) {
val userImage: ImageView by lazy { view.findViewById<ImageView>(R.id.userImage) }
}
}
Please check off the following points BEFORE submitting a new issue / asking support.
I am using Android Studio 3.0.0 and Kotlin
and importing the library :
compile 'eu.davidea:flexible-adapter:5.0.0-rc1'
I've already checked if the actual view is there, so I enabled the layout boundaries option and seen that it is there. It just looks like there is a white scrim above it? I already tried changing the booleans and using the
IHeader
interface instead of the IFlexible one. I'm not getting what I am doing wrong.I am using two types of items in my adapter that is why I added a specific type in the declaration of the adapter and using Kotlin extension functions. Please guide if you have any suggestions to improve my code more so to fix this issue
private var adapter: FlexibleAdapter<in IFlexible<in FlexibleViewHolder>> = NewsfeedAdapter(ArrayList(), this, this)
Here is the class I created for the Scrollable Header
Here is the layout
I used an extension function to add it into the adapter like so:
The layout look like this right now