parent
							
								
									d05ec5d649
								
							
						
					
					
						commit
						d82be8bc75
					
				
				 15 changed files with 245 additions and 2 deletions
			
			
		| @ -1,19 +1,107 @@ | |||||||
| package com.project.survey.activity | package com.project.survey.activity | ||||||
| 
 | 
 | ||||||
|  | import androidx.fragment.app.Fragment | ||||||
|  | import androidx.fragment.app.FragmentManager | ||||||
|  | import androidx.fragment.app.FragmentPagerAdapter | ||||||
|  | import androidx.viewpager.widget.ViewPager | ||||||
|  | import com.bingce.ui.TabEntity | ||||||
|  | import com.flyco.tablayout.listener.CustomTabEntity | ||||||
|  | import com.flyco.tablayout.listener.OnTabSelectListener | ||||||
|  | import com.project.survey.R | ||||||
| import com.project.survey.activity.base.BaseBindingActivity | import com.project.survey.activity.base.BaseBindingActivity | ||||||
| import com.project.survey.databinding.ActivityMainBinding | import com.project.survey.databinding.ActivityMainBinding | ||||||
|  | import com.project.survey.fragment.home.HomeFragment | ||||||
|  | import com.project.survey.fragment.home.InstrumentFragment | ||||||
|  | import com.project.survey.fragment.home.MeFragment | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class MainActivity : BaseBindingActivity<ActivityMainBinding>() { | class MainActivity : BaseBindingActivity<ActivityMainBinding>() { | ||||||
| 
 | 
 | ||||||
|  |     private val mFragments = mutableListOf<Fragment>() | ||||||
|  | 
 | ||||||
|     override fun getBinding(): ActivityMainBinding { |     override fun getBinding(): ActivityMainBinding { | ||||||
|         return ActivityMainBinding.inflate(layoutInflater) |         return ActivityMainBinding.inflate(layoutInflater) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     override fun initView() { |     override fun initView() { | ||||||
| 
 | 
 | ||||||
|  |         initTabFragment() | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private fun initTabFragment() { | ||||||
|  |         //设置tab | ||||||
|  |         val mTabEntities = ArrayList<CustomTabEntity>() | ||||||
|  |         mTabEntities.add( | ||||||
|  |             TabEntity( | ||||||
|  |                 "首页", | ||||||
|  |                 R.mipmap.icon_home_selected, | ||||||
|  |                 R.mipmap.icon_home_selected_not | ||||||
|  |             ) | ||||||
|  |         ) | ||||||
|  |         mTabEntities.add( | ||||||
|  |             TabEntity( | ||||||
|  |                 "仪器", | ||||||
|  |                 R.mipmap.icon_instrument_selected, | ||||||
|  |                 R.mipmap.icon_instrument_selected_not | ||||||
|  |             ) | ||||||
|  |         ) | ||||||
|  |         mTabEntities.add( | ||||||
|  |             TabEntity( | ||||||
|  |                 "我的", | ||||||
|  |                 R.mipmap.icon_me_selected, | ||||||
|  |                 R.mipmap.icon_me_selected_not | ||||||
|  |             ) | ||||||
|  |         ) | ||||||
|  |         mBinding.tabLayout.setTabData(mTabEntities) | ||||||
|  | 
 | ||||||
|  |         mBinding.tabLayout.setOnTabSelectListener(object : OnTabSelectListener { | ||||||
|  |             override fun onTabSelect(position: Int) { | ||||||
|  |                 mBinding.vp.setCurrentItem(position) | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             override fun onTabReselect(position: Int) { | ||||||
|  |             } | ||||||
|  |         }) | ||||||
|  | 
 | ||||||
|  |         //设置viewPager | ||||||
|  |         mFragments.add(HomeFragment()) | ||||||
|  |         mFragments.add(InstrumentFragment()) | ||||||
|  |         mFragments.add(MeFragment()) | ||||||
|  |         mBinding.vp.adapter = MyPagerAdapter(supportFragmentManager) | ||||||
|  |         mBinding.vp.offscreenPageLimit = 3 | ||||||
|  |         mBinding.vp.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { | ||||||
|  |             override fun onPageScrolled( | ||||||
|  |                 position: Int, | ||||||
|  |                 positionOffset: Float, | ||||||
|  |                 positionOffsetPixels: Int | ||||||
|  |             ) { | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             override fun onPageSelected(position: Int) { | ||||||
|  |                 mBinding.tabLayout.currentTab = position | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             override fun onPageScrollStateChanged(state: Int) { | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |         }) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     override fun initData() { |     override fun initData() { | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     private inner class MyPagerAdapter : FragmentPagerAdapter { | ||||||
|  |         constructor(fm: FragmentManager) : super(fm) | ||||||
|  | 
 | ||||||
|  |         constructor(fm: FragmentManager, behavior: Int) : super(fm, behavior) | ||||||
|  | 
 | ||||||
|  |         override fun getItem(position: Int): Fragment { | ||||||
|  |             return mFragments[position] | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         override fun getCount(): Int { | ||||||
|  |             return mFragments.size | ||||||
|  |         } | ||||||
|  |     } | ||||||
| } | } | ||||||
| @ -0,0 +1,59 @@ | |||||||
|  | package com.project.survey.fragment.base; | ||||||
|  | 
 | ||||||
|  | import android.os.Bundle; | ||||||
|  | import android.view.LayoutInflater; | ||||||
|  | import android.view.View; | ||||||
|  | import android.view.ViewGroup; | ||||||
|  | 
 | ||||||
|  | import androidx.annotation.NonNull; | ||||||
|  | import androidx.annotation.Nullable; | ||||||
|  | import androidx.fragment.app.Fragment; | ||||||
|  | import androidx.viewbinding.ViewBinding; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | public abstract class BaseFragmentBinding<VB extends ViewBinding> extends Fragment { | ||||||
|  |     protected VB mBinding; | ||||||
|  | 
 | ||||||
|  |     @Nullable | ||||||
|  |     @Override | ||||||
|  |     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { | ||||||
|  |         mBinding = getViewBinding(inflater, container); | ||||||
|  |         return mBinding.getRoot(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { | ||||||
|  |         super.onViewCreated(view, savedInstanceState); | ||||||
|  |         initView(); | ||||||
|  |         initData(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void onDestroyView() { | ||||||
|  |         super.onDestroyView(); | ||||||
|  |         mBinding = null; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     protected abstract VB getViewBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container); | ||||||
|  | 
 | ||||||
|  |     protected abstract void initView(); | ||||||
|  | 
 | ||||||
|  |     protected abstract void initData(); | ||||||
|  | 
 | ||||||
|  |     protected String getArgumentString(String key) { | ||||||
|  |         Bundle bundle = getArguments(); | ||||||
|  |         if (bundle != null) { | ||||||
|  |             return bundle.getString(key); | ||||||
|  |         } | ||||||
|  |         return null; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     protected int getArgumentInt(String key) { | ||||||
|  |         Bundle bundle = getArguments(); | ||||||
|  |         if (bundle != null) { | ||||||
|  |             return bundle.getInt(key); | ||||||
|  |         } | ||||||
|  |         return -1; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,21 @@ | |||||||
|  | package com.project.survey.fragment.home | ||||||
|  | 
 | ||||||
|  | import android.view.LayoutInflater | ||||||
|  | import android.view.ViewGroup | ||||||
|  | import com.project.survey.databinding.FragmentHomeBinding | ||||||
|  | import com.project.survey.fragment.base.BaseFragmentBinding | ||||||
|  | 
 | ||||||
|  | class HomeFragment : BaseFragmentBinding<FragmentHomeBinding>() { | ||||||
|  |     override fun getViewBinding( | ||||||
|  |         inflater: LayoutInflater, | ||||||
|  |         container: ViewGroup? | ||||||
|  |     ): FragmentHomeBinding { | ||||||
|  |         return FragmentHomeBinding.inflate(inflater, container, false) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     override fun initView() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     override fun initData() { | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,21 @@ | |||||||
|  | package com.project.survey.fragment.home | ||||||
|  | 
 | ||||||
|  | import android.view.LayoutInflater | ||||||
|  | import android.view.ViewGroup | ||||||
|  | import com.project.survey.databinding.FragmentInstrumentBinding | ||||||
|  | import com.project.survey.fragment.base.BaseFragmentBinding | ||||||
|  | 
 | ||||||
|  | class InstrumentFragment : BaseFragmentBinding<FragmentInstrumentBinding>() { | ||||||
|  |     override fun getViewBinding( | ||||||
|  |         inflater: LayoutInflater, | ||||||
|  |         container: ViewGroup? | ||||||
|  |     ): FragmentInstrumentBinding { | ||||||
|  |         return FragmentInstrumentBinding.inflate(inflater, container, false) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     override fun initView() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     override fun initData() { | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,21 @@ | |||||||
|  | package com.project.survey.fragment.home | ||||||
|  | 
 | ||||||
|  | import android.view.LayoutInflater | ||||||
|  | import android.view.ViewGroup | ||||||
|  | import com.project.survey.databinding.FragmentMeBinding | ||||||
|  | import com.project.survey.fragment.base.BaseFragmentBinding | ||||||
|  | 
 | ||||||
|  | class MeFragment : BaseFragmentBinding<FragmentMeBinding>() { | ||||||
|  |     override fun getViewBinding( | ||||||
|  |         inflater: LayoutInflater, | ||||||
|  |         container: ViewGroup? | ||||||
|  |     ): FragmentMeBinding { | ||||||
|  |         return FragmentMeBinding.inflate(inflater, container, false) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     override fun initView() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     override fun initData() { | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -0,0 +1,11 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     android:layout_width="match_parent" | ||||||
|  |     android:layout_height="match_parent" | ||||||
|  |     android:orientation="vertical"> | ||||||
|  | 
 | ||||||
|  |     <TextView | ||||||
|  |         android:layout_width="wrap_content" | ||||||
|  |         android:layout_height="wrap_content" | ||||||
|  |         android:text="首页" /> | ||||||
|  | </LinearLayout> | ||||||
| @ -0,0 +1,11 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     android:layout_width="match_parent" | ||||||
|  |     android:layout_height="match_parent" | ||||||
|  |     android:orientation="vertical"> | ||||||
|  | 
 | ||||||
|  |     <TextView | ||||||
|  |         android:layout_width="wrap_content" | ||||||
|  |         android:layout_height="wrap_content" | ||||||
|  |         android:text="仪器" /> | ||||||
|  | </LinearLayout> | ||||||
| @ -0,0 +1,11 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |     android:layout_width="match_parent" | ||||||
|  |     android:layout_height="match_parent" | ||||||
|  |     android:orientation="vertical"> | ||||||
|  | 
 | ||||||
|  |     <TextView | ||||||
|  |         android:layout_width="wrap_content" | ||||||
|  |         android:layout_height="wrap_content" | ||||||
|  |         android:text="我的" /> | ||||||
|  | </LinearLayout> | ||||||
| After Width: | Height: | Size: 906 B | 
| After Width: | Height: | Size: 983 B | 
| After Width: | Height: | Size: 954 B | 
| After Width: | Height: | Size: 963 B | 
| After Width: | Height: | Size: 933 B | 
| After Width: | Height: | Size: 958 B | 
					Loading…
					
					
				
		Reference in new issue