TabLayout、ViewPager和Fragment的多页面滑动
来源:互联网 发布:tensorflow 例子 编辑:程序博客网 时间:2024/05/16 23:55
1、首先在build.gradle(Module:app)中添加依赖。
compile 'com.android.support:appcompat-v7:22.2.0'compile 'com.android.support:design:22.2.0'
2、在页面的布置中我们需要Tabs、三个Fragment和ViewPager来实现滑动的效果。首先,我们我们定义三个Fragment以及对应的Fragment对应的布局文件。
TabFragment1.java文件
public class TabFragment1 extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_tab_fragment1,container,false); }}
对应的fragment_tab_fragment1.xml文件
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.fumier.viewpagerexample.TabFragment1"> <!-- TODO: Update blank fragment layout --> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="tab1" /></FrameLayout>
同理TabFragment2、fragment_tab_fragment2.xml文件以及TabFragment3、fragment_tab_fragment3.xml文件
3、实现PagerAdapter类,该类继承自FragmentStatePagerAdapter。
public class PagerAdapter extends FragmentStatePagerAdapter { int nNumOfTabs; public PagerAdapter(FragmentManager fm,int nNumOfTabs) { super(fm); this.nNumOfTabs=nNumOfTabs; } @Override public Fragment getItem(int position) { switch(position) { case 0: TabFragment1 tab1=new TabFragment1(); return tab1; case 1: TabFragment2 tab2=new TabFragment2(); return tab2; case 2: TabFragment3 tab3=new TabFragment3(); return tab3; } return null; } @Override public int getCount() { return nNumOfTabs; }}
4、具体的MainActivity的实现
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout); tabLayout.addTab(tabLayout.newTab().setText("Tab 1")); tabLayout.addTab(tabLayout.newTab().setText("Tab 2")); tabLayout.addTab(tabLayout.newTab().setText("Tab 3")); tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); final ViewPager viewPager = (ViewPager) findViewById(R.id.pager); final PagerAdapter adapter = new PagerAdapter (getSupportFragmentManager(), tabLayout.getTabCount()); viewPager.setAdapter(adapter); viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { viewPager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}
0 0
- TabLayout 和ViewPager和Fragment的多页面滑动
- TabLayout、ViewPager和Fragment的多页面滑动
- TabLayout、ViewPager和Fragment的多页面滑动
- 自学android笔记之TabLayout结合ViewPager和Fragment实现多页面滑动
- TabLayout + ViewPager 的滑动页面
- TabLayout 和ViewPager和Fragment的多页面滑动(主要实现一个水平的布局用来展示Tabs加上ViewPager实现联动效果)
- ViewPager 、TabLayout和Fragment实现标签滑动
- TabLayout和ViewPager+Fragment做滑动栏
- ViewPager+Fragment+TabLayout实现的头部滑动
- TabLayout+Fragment+ViewPager的标题滑动使用
- Fragment嵌套Fragment, TabLayout + ViewPager实现页面切换滑动
- TabLayout + ViewPager 实现 页面滑动
- 不用ViewPager和Fragment实现滑动页面的效果
- TabLayout、ViewPager和Fragment之间的通讯
- Fragment+viewpager+tablayout滑动时无弹性的解决方法
- TabLayout、ViewPager、fragment实现可滑动的顶部菜单
- ViewPager+Fragment 实现滑动页面的效果
- Viewpager+Fragment实现页面的滑动
- 免费VPN
- 【Java】给定两个32位的整数N与M,以及表示比特位置的i与j。编写一个方法,将M插入N,使得M从N的第 j 位开始,到第 i 位结束。
- C/C++内存泄漏及检测
- UVA - 1394 And Then There Was One
- spring setter and constructor注入
- TabLayout、ViewPager和Fragment的多页面滑动
- form.validate
- Android TextView(EditView)文字底部或者中间 加横线
- C# Socket服务器端如何判断客户端断开求解
- windows下禁止使用usb接口进行拷贝
- 关于html表格复制到excel
- android中px和dp的相互转换
- java 生成excel
- UVA 11389 The Bus Driver Problem(贪心)