欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Kotlin FrameLayout與ViewPager2控件實(shí)現(xiàn)滾動(dòng)廣告欄方法

 更新時(shí)間:2022年12月06日 09:05:08   作者:go2coding  
這篇文章主要介紹了Kotlin FrameLayout與ViewPager2控件實(shí)現(xiàn)滾動(dòng)廣告欄,F(xiàn)rameLayout與ViewPager2是Android開發(fā)中非常常見的布局組件,并且它不單單是一個(gè)幀布局組件,可以用它實(shí)現(xiàn)多種功能,感興趣的朋友一起來看看吧

在上一節(jié)中我們簡(jiǎn)單的介紹了RecyclerView 的使用,他是整個(gè)開發(fā)的重點(diǎn)控件,這一節(jié)我們來看看FrameLayout 布局結(jié)合ViewPager2,開發(fā)一個(gè)廣告控件。

新模塊banner

先創(chuàng)建一個(gè)新的模塊,取名為banner,用來創(chuàng)建我們的滾動(dòng)廣告條控件。

新建模塊有一個(gè)好處就是模塊是獨(dú)立的,以后可以進(jìn)行復(fù)用。

FrameLayout幀布局

FrameLayout 布局主要是用在一些小控件上,他比較靈活,而且不會(huì)耗太多的資源。新建一個(gè)類,繼承

FrameLayout。

class BannerView @JvmOverloads constructor(context: Context,attrs: AttributeSet?, defStyleAttr: Int = 0) :
    FrameLayout(context,attrs,defStyleAttr)

我們的思路是這樣的,在FrameLayout 中我們 放一個(gè)ViewPager2 的控件,這個(gè)控件 搭建一個(gè)適配器,就可以起到廣告輪播的效果。

ViewPager2控件

FrameLayout 中,我們搭建了一個(gè)ViewPager2 ,和前面的RecyclerView 一樣,他也需要搭建一個(gè) 適配器。

    inner class Adapter(var dataList:ArrayList<BannerInfo>):RecyclerView.Adapter<Adapter.ViewHolder>(){
        inner class ViewHolder(view:View):RecyclerView.ViewHolder(view){
            var pic:ImageView = view.findViewById(R.id.image_view1)
        }
        override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
            val view = LayoutInflater.from(parent.context).inflate(R.layout.item_banner_image,parent,false)
            val viewHolder = ViewHolder(view as View)
            return viewHolder;
        }
        override fun onBindViewHolder(holder: ViewHolder, position: Int) {
            val banner = dataList[position]
            holder.pic.setImageResource(banner.imageId)
        }
        override fun getItemCount(): Int {
            return dataList.size
        }
    }

適配器的構(gòu)建原理和前面的章節(jié)就沒有什么區(qū)別了,也就是跟界面進(jìn)行綁定就可以了。

讓他定時(shí)滾動(dòng)起來:

        autoplayJob = viewScope.launch {
            while (true){
                if (viewPager.currentItem >= dataList.size-1){
                    viewPager.setCurrentItem(0,true)
                }
                else{
                    viewPager.setCurrentItem(viewPager.currentItem+1,true)
                }
                delay(3000)
            }
        }

在主界面的界面中,引入Banner控件

    <com.kotlin.banner.BannerView
        android:id="@+id/bannerView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"

初始化控件:

var bfs:ArrayList<BannerInfo> = arrayListOf(BannerInfo(R.drawable.banner_1, displayText = "hello"),
            BannerInfo(R.drawable.banner_2, displayText = "hello"),
            BannerInfo(R.drawable.banner_3, displayText = "hello"))
        var bv:BannerView = findViewById(R.id.bannerView1)
        bv.setData(bfs)

小結(jié)

這節(jié)中,我們介紹了一個(gè)自定義布局,一個(gè)ViewPager2控件,組成了一個(gè)簡(jiǎn)單的輪播廣告,這里的demo相對(duì)比較簡(jiǎn)單,還是同樣的道理,這種控件還是直接用第三方的,功能豐富又好用,我們的例子只是拆分了一個(gè)原理出來而已。

到此這篇關(guān)于Kotlin FrameLayout與ViewPager2控件實(shí)現(xiàn)滾動(dòng)廣告欄方法的文章就介紹到這了,更多相關(guān)Kotlin滾動(dòng)廣告欄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論