컨트롤---fragment 사용(1)
4680 단어 컨트롤
1.Fragment 와 ViewPager 연결
1.activity xml 에 ViewPager 컨트롤 추가
2.Fragment(v4 패키지)에서 계승 하 는 클래스 를 새로 만 듭 니 다.Fragment 1(가방 에서 new-fragment-blank fragment 를 오른쪽 단추 로 누 를 수 있 음)이 라 고 이름 을 지 을 수 있 습 니 다.비슷 한 것 은 여러 개 를 새로 만 들 수 있 습 니 다(viewPager 와 연결).
class Fragment1 : Fragment() {
private var param1: String? = null
private var param2: String? = null
private var listener: OnFragmentInteractionListener? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
param1 = it.getString(ARG_PARAM1)
param2 = it.getString(ARG_PARAM2)
}
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_fragment1, container, false)
}
fun onButtonPressed(uri: Uri) {
listener?.onFragmentInteraction(uri)
}
override fun onAttach(context: Context) {
super.onAttach(context)
if (context is OnFragmentInteractionListener) {
listener = context
} else {
throw RuntimeException(context.toString() + " must implement OnFragmentInteractionListener")
}
}
override fun onDetach() {
super.onDetach()
listener = null
}
// ,activity , fragment activity
interface OnFragmentInteractionListener {
fun onFragmentInteraction(uri: Uri)//
}
companion object {
private const val ARG_PARAM1 = "param1"
private const val ARG_PARAM2 = "param2"
@JvmStatic
fun newInstance(param1: String, param2: String) =
Fragment1().apply {
arguments = Bundle().apply {
putString(ARG_PARAM1, param1)
putString(ARG_PARAM2, param2)
}
}
}
}
3.Fragment Adapter 에서 계승 하 는 클래스 를 새로 만 듭 니 다.MyFragment Adapter 라 고 명명 할 수 있 습 니 다.
class MyFragmentAdapter(fm: FragmentManager, fragments: MutableList) : FragmentPagerAdapter(fm) {
private var fragmentList: MutableList = fragments
override fun getItem(position: Int): Fragment {
return fragmentList[position]
}
override fun getCount(): Int {
return fragmentList.size
}
}
4.준비 작업 이 완료 되면 Activity 의 코드 를 추가 합 니 다.Fragment Activity 류 를 계승 해 야 합 니 다.
class MyFragmentActivity : FragmentActivity()
, Fragment1.OnFragmentInteractionListener
, Fragment2.OnFragmentInteractionListener {
override fun onFragmentInteraction222(string: String) {
Log.d("baibai", "onFragmentInteraction222")
Log.d("baibai", string)
}
override fun onFragmentInteraction(uri: Uri) {
}
private lateinit var mFragments: MutableList
private lateinit var mFragment1: Fragment1
private lateinit var mFragment2: Fragment2
private lateinit var mFragmentAdapter: MyFragmentAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_my_fragment)
initFragment()
initListener()
}
private fun initFragment() {
mFragment1 = Fragment1.newInstance("bai", "yun")
mFragment2 = Fragment2.newInstance("111", "222")
mFragments = mutableListOf()
mFragments.add(mFragment1)
mFragments.add(mFragment2)
}
private fun initListener() {
mFragmentAdapter = MyFragmentAdapter(this.supportFragmentManager, mFragments)
vp_fragment.adapter = mFragmentAdapter
vp_fragment.setOnPageChangeListener(object : ViewPager.OnPageChangeListener {
override fun onPageScrollStateChanged(state: Int) {
}
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
//
}
override fun onPageSelected(position: Int) {
//viewPager
}
})
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[기관실 요금 시스템] MSHflexgrid 컨트롤에서 Excel로 가져오기오늘은 다음과 같은 해결 방법을 정리합니다. 먼저 모듈에서 다음 절차를 설명합니다. 이렇게 하면 기본적인 절차가 끝나고 필요한 창에서command의click에서 해당하는 명령을 실행합니다. 이렇게 하면 excel에 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.