Kotlin學(xué)習(xí)筆記——Fragment

    #define 小毛驢 xml

使用方法

Fragment與ViewPager搭配,實(shí)現(xiàn)翻頁(yè),實(shí)現(xiàn)每頁(yè)多個(gè)控件

  1. 寫好每個(gè)item的小毛驢文件和數(shù)據(jù)傳送類
  2. 繼承Fragment類,自定義一個(gè)fragment
class BlankFragment : Fragment() {
    var ctx:Context? = null
    var mPosition:Int = 0
    var mInageId:Int = 0
    var mDesc:String = ""
    var title:String = ""

    val colorNames = listOf<String>("紅色","黃色","綠色","青色","藍(lán)色")
    val colors = intArrayOf(Color.RED, Color.YELLOW, Color.GREEN, Color.CYAN, Color.BLUE)
    var mSeq:Int = 0
    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        ctx = activity
        if (arguments != null) {
            mPosition = arguments!!.getInt("position", 0)
            mInageId = arguments!!.getInt("image_id", 0)
            mDesc = arguments!!.getString("desc")
            title = arguments!!.getString("title")
        }//獲取數(shù)據(jù)
        val view = inflater.inflate(R.layout.show_info, container, false)

        view.findViewById<ImageView>(R.id.imageView).setImageResource(mInageId)
        view.findViewById<TextView>(R.id.textView).text = mDesc
        //顯示數(shù)據(jù)
        return view
    }

    companion object {
        fun newInstance(position:Int, image_id:Int, desc:String, title:String) : BlankFragment {//調(diào)用這個(gè)函數(shù),創(chuàng)建新的fragment

            val fragment = BlankFragment()
            val bundle = Bundle()
            bundle.putInt("position", position)
            bundle.putInt("image_id", image_id)
            bundle.putString("desc", desc)
            bundle.putString("title", title)
            fragment.arguments = bundle
            return fragment
        }
    }
}
  1. ViewPager的適配器
class infoPagerAdapter(val fragManger: FragmentManager, val itemList:MutableList<itemInfo>) : FragmentStatePagerAdapter(fragManger) {
    override fun getCount(): Int = itemList.size
    override fun getItem(p0: Int): Fragment {
        val item = itemList[p0]
        return BlankFragment.newInstance(p0, item.pic, item.desc, item.name)
    }

    override fun getPageTitle(position: Int): CharSequence? {
        return itemList[position].name
    }
}

4.給ViewPager添加適配器

class MainActivity : FragmentActivity(){
//這個(gè)時(shí)候,繼承的是FragmentActivity
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        var vp:ViewPager = findViewById(R.id.vp)
        var title: PagerTabStrip = findViewById(R.id.title)
        val list:MutableList<itemInfo> = mutableListOf()
        //省略中間給list賦值的過(guò)程
        vp.adapter = infoPagerAdapter(supportFragmentManager, list)
        vp.currentItem = 0
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ViewPager在開(kāi)發(fā)中的使用頻率非常的高,所以在此做個(gè)總結(jié)。主要包括以下幾方面: ViewPager的簡(jiǎn)介和作...
    西瓜太郎123閱讀 121,797評(píng)論 21 261
  • 今天我們來(lái)一起實(shí)現(xiàn)“愛(ài)閱”首頁(yè)滑動(dòng)切換分類瀏覽閱讀的效果,并將ViewPager和TabLayout結(jié)合起來(lái)用以實(shí)...
    常思行閱讀 6,109評(píng)論 2 49
  • PagerAdapter分析與Fragment懶加載的幾種實(shí)現(xiàn) Deprecated 時(shí)間:2019年8月23日 ...
    MycroftWong閱讀 10,488評(píng)論 14 41
  • 又是今晚隨筆時(shí),每天知道要寫隨筆,可總是要瀏覽半天朋友圈,直到一個(gè)紅點(diǎn)不見(jiàn),實(shí)在感覺(jué)無(wú)事可做,才開(kāi)始每天的隨筆。我...
    慧心如蓮閱讀 243評(píng)論 0 2
  • 高中遇見(jiàn)的人,算是朋友吧,始終感覺(jué)有哪里不對(duì)勁。原來(lái),是少了那種被在乎的感覺(jué)。這種感覺(jué)不在于形式,不在于禮物貴賤,...
    臘梅最棒閱讀 253評(píng)論 0 0

友情鏈接更多精彩內(nèi)容