安卓界面之Viewpager和Tablayout實現滑動界面
阿新 • • 發佈:2019-01-05
多個 ces listt man bind tle find you 安卓
摘要:六部實現選項卡界面
一.
在gradle文件添加以下代碼:
implementation ‘com.android.support:design:28.0.0‘
在gradle文件添加以上代碼後,才能使用Tablayout(版本號28.0.0是我做實驗時最新的版本)
二.布局代碼
<android.support.design.widget.TabLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:tabMaxWidth="0dp" app:tabGravity="fill" app:tabMode="fixed" android:id="@+id/tablayout_id" android:textAlignment="center" app:tabSelectedTextColor="@color/tabindicatorcolor" app:tabTextColor="@color/tabtextcolor" app:tabIndicatorColor="@color/tabindicatorcolor" android:background="@color/colorPrimary"/> <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/viewpager_id"> </android.support.v4.view.ViewPager>
三.在res/layout目錄下自定義xml文件作為fragment中的選項界面
action_fragment.xml和mark_fragment.xml分別為"行動","統計"選項卡界面
四.新建多個繼承Fragment的子類返回選項界面
FragmentAction.java
public class FramentAction extends Fragment { public FramentAction() { } @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view=inflater.inflate(R.layout.action_fragment,container,false); return view; } }
FragmentMark.java
public class FragmentMark extends Fragment { public FragmentMark() { } @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view=inflater.inflate(R.layout.mark_fragment,container,false); return view; } }
五.自定義繼承FragmentPagerAdapter的子類ViewPagerAdater,重寫getItem(),getCount(),getPageTitle()方法,添加AddFragment()方法
public class ViewPagerAdaper extends FragmentPagerAdapter { private final List<Fragment> fragmentList=new ArrayList<>(); private final List<String> fragementListTitle=new ArrayList<>(); public ViewPagerAdaper(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int i) { return fragmentList.get(i); } @Override public int getCount() { return fragementListTitle.size(); } @Nullable @Override public CharSequence getPageTitle(int position) { return fragementListTitle.get(position); } public void AddFragemnt(Fragment fragment,String title){ fragmentList.add(fragment); fragementListTitle.add(title); } }
六.在MainActivity.java中實現以下代碼:
tabLayout=findViewById(R.id.tablayout_id); viewPager=findViewById(R.id.viewpager_id); ViewPagerAdaper mAdaper=new ViewPagerAdaper(getSupportFragmentManager()); mAdaper.AddFragemnt(new FramentAction(),"行動"); mAdaper.AddFragemnt(new FragmentMark(),"統計"); viewPager.setAdapter(mAdaper); tabLayout.setupWithViewPager(viewPager);
安卓界面之Viewpager和Tablayout實現滑動界面