diff --git a/app/src/main/java/com/mantis/customgallery/ChildView.kt b/app/src/main/java/com/mantis/customgallery/ChildView.kt index 9472b15..cf09d79 100644 --- a/app/src/main/java/com/mantis/customgallery/ChildView.kt +++ b/app/src/main/java/com/mantis/customgallery/ChildView.kt @@ -6,8 +6,8 @@ import android.widget.ImageView import com.bumptech.glide.Glide import com.mantis.infinitegallery.BaseInfiniteView -class ChildView(context: Context, val image: Image) : BaseInfiniteView(context) { - override fun bindView(): View { +class ChildView(context: Context) : BaseInfiniteView(context) { + override fun bindView(image :Image): View { val view = inflateView(R.layout.item_view) val imageView = view.findViewById(R.id.ivImage) Glide.with(imageView.context).load(image.url).into(imageView) diff --git a/infinitegallery/build.gradle b/infinitegallery/build.gradle index 6a566df..6bcc766 100644 --- a/infinitegallery/build.gradle +++ b/infinitegallery/build.gradle @@ -10,7 +10,7 @@ android { defaultConfig { - minSdkVersion 14 + minSdkVersion 21 targetSdkVersion 28 versionCode 1 versionName "1.0" diff --git a/infinitegallery/src/main/java/com/mantis/infinitegallery/BaseInfiniteView.kt b/infinitegallery/src/main/java/com/mantis/infinitegallery/BaseInfiniteView.kt index dcbce08..b704ccc 100644 --- a/infinitegallery/src/main/java/com/mantis/infinitegallery/BaseInfiniteView.kt +++ b/infinitegallery/src/main/java/com/mantis/infinitegallery/BaseInfiniteView.kt @@ -4,7 +4,7 @@ import android.content.Context import android.view.LayoutInflater import android.view.View -open abstract class BaseInfiniteView( +open abstract class BaseInfiniteView( private val context: Context, private val layoutInflater: LayoutInflater = LayoutInflater.from(context)) { @@ -12,7 +12,7 @@ open abstract class BaseInfiniteView( /**create and bind data to view here * */ - abstract fun bindView(): View + abstract fun bindView(obj:T): View /** diff --git a/infinitegallery/src/main/java/com/mantis/infinitegallery/InfiniteGallery.kt b/infinitegallery/src/main/java/com/mantis/infinitegallery/InfiniteGallery.kt index 736d7e2..32a2063 100644 --- a/infinitegallery/src/main/java/com/mantis/infinitegallery/InfiniteGallery.kt +++ b/infinitegallery/src/main/java/com/mantis/infinitegallery/InfiniteGallery.kt @@ -15,7 +15,7 @@ import android.view.ViewGroup.LayoutParams.MATCH_PARENT import android.widget.FrameLayout -open class InfiniteGallery : FrameLayout { +open class InfiniteGallery> : FrameLayout { // member definition @@ -31,7 +31,7 @@ open class InfiniteGallery : FrameLayout { var numChildToShow: Int = DEFAULT_CHILD_NUM_TO_SHOW var childViewList = mutableListOf() - + var itemList = mutableListOf() val DIRECTION_RIGHT = 1 val DIRECTION_LEFT = -1 @@ -65,16 +65,28 @@ open class InfiniteGallery : FrameLayout { childViewList.add(view) } +// private fun getChild(context: Context) :T{ +// +// } + + inline fun getChild(context: Context): T { + return T::class.java.newInstance() + } - fun addChilds(views: MutableList): InfiniteGallery { + fun addChilds(views: MutableList): InfiniteGallery { childViewList = views return this } + fun postItemList(dataList: MutableList) { + this.itemList = dataList + } fun display() { post { - for (child in childViewList) { - attachChild(child.bindView()) + removeAllViews() + for (item in itemList) { + + attachChild((getChild(context)as BaseInfiniteView).bindView(item)) } startAnimation() }