1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 安卓界面之Viewpager和Tablayout实现滑动界面

安卓界面之Viewpager和Tablayout实现滑动界面

时间:2018-11-22 09:46:20

相关推荐

安卓界面之Viewpager和Tablayout实现滑动界面

摘要:六部实现选项卡界面

一.

在gradle文件添加以下代码:

implementation 'com.android.support:design:28.0.0'

在gradle文件添加以上代码后,才能使用Tablayout(版本号28.0.0是我做实验时最新的版本)

二.布局代码

<android.support.design.widget.TabLayoutandroid: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.ViewPagerandroid: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@Overridepublic 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@Overridepublic 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);}@Overridepublic Fragment getItem(int i) {return fragmentList.get(i);}@Overridepublic int getCount() {return fragementListTitle.size();}@Nullable@Overridepublic 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);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。