#define 小毛驢 xml
使用方法
Fragment與ViewPager搭配搪桂,實現(xiàn)翻頁蓖谢,實現(xiàn)每頁多個控件
- 寫好每個item的小毛驢文件和數(shù)據(jù)傳送類
- 繼承Fragment類朋蔫,自定義一個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>("紅色","黃色","綠色","青色","藍色")
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)用這個函數(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
}
}
}
- 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(){
//這個時候萝究,繼承的是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賦值的過程
vp.adapter = infoPagerAdapter(supportFragmentManager, list)
vp.currentItem = 0
}
}