Commit 86c21de6 authored by Max Lv's avatar Max Lv

Fix the AdView when scrolling

parent 3765b97c
...@@ -116,6 +116,39 @@ class ProfilesFragment : ToolbarFragment(), Toolbar.OnMenuItemClickListener { ...@@ -116,6 +116,39 @@ class ProfilesFragment : ToolbarFragment(), Toolbar.OnMenuItemClickListener {
TooltipCompat.setTooltipText(share, share.contentDescription) TooltipCompat.setTooltipText(share, share.contentDescription)
} }
fun attach() {
if (!isAdLoaded && item.host == "198.199.101.152") {
if (this.adView == null) {
val params = LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
AdSize.SMART_BANNER.getHeightInPixels(context))
params.gravity = Gravity.CENTER_HORIZONTAL
var adView = AdView(context)
adView.layoutParams = params
adView.adUnitId = "ca-app-pub-9097031975646651/7760346322"
adView.adSize = AdSize.SMART_BANNER
itemView.findViewById<LinearLayout>(R.id.content).addView(adView)
// Load Ad
val adBuilder = AdRequest.Builder()
adBuilder.addTestDevice("B08FC1764A7B250E91EA9D0D5EBEB208")
adBuilder.addTestDevice("7509D18EB8AF82F915874FEF53877A64")
adView.loadAd(adBuilder.build())
this.adView = adView
} else this.adView?.visibility = View.VISIBLE
isAdLoaded = true
} else this.adView?.visibility = View.GONE
}
fun detach() {
if (this.adView?.visibility == View.VISIBLE) {
isAdLoaded = false
this.adView?.visibility == View.GONE
}
}
fun bind(item: Profile) { fun bind(item: Profile) {
this.item = item this.item = item
val editable = isProfileEditable(item.id) val editable = isProfileEditable(item.id)
...@@ -144,30 +177,6 @@ class ProfilesFragment : ToolbarFragment(), Toolbar.OnMenuItemClickListener { ...@@ -144,30 +177,6 @@ class ProfilesFragment : ToolbarFragment(), Toolbar.OnMenuItemClickListener {
itemView.isSelected = false itemView.isSelected = false
if (selectedItem === this) selectedItem = null if (selectedItem === this) selectedItem = null
} }
if (!isAdLoaded && item.host == "198.199.101.152") {
if (this.adView == null) {
val params = LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
AdSize.SMART_BANNER.getHeightInPixels(context))
params.gravity = Gravity.CENTER_HORIZONTAL
var adView = AdView(context)
adView.layoutParams = params
adView.adUnitId = "ca-app-pub-9097031975646651/7760346322"
adView.adSize = AdSize.SMART_BANNER
itemView.findViewById<LinearLayout>(R.id.content).addView(adView)
// Load Ad
val adBuilder = AdRequest.Builder()
adBuilder.addTestDevice("B08FC1764A7B250E91EA9D0D5EBEB208")
adBuilder.addTestDevice("7509D18EB8AF82F915874FEF53877A64")
adView.loadAd(adBuilder.build())
this.adView = adView
} else this.adView?.visibility = View.VISIBLE
isAdLoaded = true
} else this.adView?.visibility = View.GONE
} }
override fun onClick(v: View?) { override fun onClick(v: View?) {
...@@ -203,6 +212,8 @@ class ProfilesFragment : ToolbarFragment(), Toolbar.OnMenuItemClickListener { ...@@ -203,6 +212,8 @@ class ProfilesFragment : ToolbarFragment(), Toolbar.OnMenuItemClickListener {
setHasStableIds(true) // see: http://stackoverflow.com/a/32488059/2245107 setHasStableIds(true) // see: http://stackoverflow.com/a/32488059/2245107
} }
override fun onViewAttachedToWindow(holder: ProfileViewHolder) = holder.attach()
override fun onViewDetachedFromWindow(holder: ProfileViewHolder) = holder.detach()
override fun onBindViewHolder(holder: ProfileViewHolder, position: Int) = holder.bind(profiles[position]) override fun onBindViewHolder(holder: ProfileViewHolder, position: Int) = holder.bind(profiles[position])
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ProfileViewHolder = ProfileViewHolder( override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ProfileViewHolder = ProfileViewHolder(
LayoutInflater.from(parent.context).inflate(R.layout.layout_profile, parent, false)) LayoutInflater.from(parent.context).inflate(R.layout.layout_profile, parent, false))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment