InviteMemberActivity

사용자 검색, 초대 화면

  • ViewPager 로 SelectDeviceContactsListFragment, SelectSearchUserListFragment 두개를 child로 가진다.

setupViewPager

  • viewPage를 세팅한다.

  • Adapter에 child화면을 설정한다.

  • listener를 등록한다.

private fun setupViewPager() {
    mSelectDeviceContactsListFragment = SelectDeviceContactsListFragment()
    mSelectUserListFragment = SelectSearchUserListFragment()

    mAdapter.addFragment(mSelectDeviceContactsListFragment, "연락처")
    mAdapter.addFragment(mSelectUserListFragment, "가입자 검색")
    mViewPager.adapter = this.mAdapter

    mViewPager.offscreenPageLimit = 2
    mViewPager.addOnPageChangeListener(viewpagerListener)
}

viewpagerListener

  • Page가 바뀌었을때의 동작을 정의한다.

  • onPageScrollStateChanged : 페이지 탭을 클릭/드래그/드랍 하는 상태변화 감지

  • onPageScrolled : 페이지 스크롤이 완료되었을 때

  • onPageSelected : 탭에서 페이지를 선택했을 때 -> Tab포지션 값을 바꿔준다.

private val viewpagerListener = object : ViewPager.OnPageChangeListener {
    override fun onPageScrollStateChanged(state: Int) {
        //Log.d(Define.TAG, "[MainActivity] OnPageChangeListener onPageScrollStateChanged");
    }

    override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
        //Log.d(Define.TAG, "[MainActivity] OnPageChangeListener  onPageScrolled");
    }

    override fun onPageSelected(position: Int) {
        //Log.d(Define.TAG, "[SelectMemberInviteListActivity] OnPageChangeListener onPageSelected position : " + position);
        mTabPosition = position
    }

}

mAdapter

  • ViewPager와 Fragment를 연결하기 위해 설정하는 FragmentPagerAdapter 클래스

private val mAdapter = object:FragmentPagerAdapter(supportFragmentManager){
    private val mFragmentList = ArrayList<Fragment>()
    private val mFragmentTitleList = ArrayList<String>()

    override fun getItem(position: Int): Fragment {
        return mFragmentList.get(position)
    }

    override fun getCount(): Int {
        return mFragmentList.size
    }

    fun addFragment(fragment: Fragment, title: String) {
        mFragmentList.add(fragment)
        mFragmentTitleList.add(title)
    }

    override fun getPageTitle(position: Int): CharSequence? {
        return mFragmentTitleList.get(position)
    }
}

onCreate

  • layout을 세팅한다.

  • 공통 변수들을 초기화한다.

  • viewPager와 tab을 세팅한다.

  • listener를 등록한다.

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_invite_member)

    mViewPager = invite_viewpager
    mTabs = invite_tabs

    //tab & viewPager setting
    setupViewPager()
    mTabs.setupWithViewPager(mViewPager)

    top_complete?.setOnClickListener {
        if(mTabPosition == 0){ //mSelectDeviceContactsListFragment
            mSelectDeviceContactsListFragment.sendInviteMemberToServer()
        }else{ //mSelectUserListFragment
            mSelectUserListFragment.sendInviteMemberToServer()
        }
    }
     btn_back?.setOnClickListener {
            finish()
        }

}

Last updated

Was this helpful?