基于5.0以后版本的viewpager与导航滑动条
来源:互联网 发布:淘宝单号购买 编辑:程序博客网 时间:2024/06/10 13:52
先来看看效果图
首先这是Material Design里的Tab空间实现的
参考资料
官方英文文档:
http://www.google.com/design/spec/material-design/
中文版网站:
http://wiki.jikexueyuan.com/project/material-design/
一个大神写的文档
http://www.jcodecraeer.com/a/anzhuokaifa/developer/2015/0531/2958.html?mType=Group
代码如下
1.LocalMusicActivity的xml布局:
其实就是在viewpager上面放一个TabLayout
<RelativeLayout 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.archermind.musicplayer.activity.LocalMusicActivity"><android.support.design.widget.TabLayout android:id="@+id/tablelayout" android:layout_width="match_parent" android:layout_height="wrap_content"></android.support.design.widget.TabLayout> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_below="@id/tablelayout" android:layout_height="match_parent" /></RelativeLayout>
2.LocalActivity的java代码
public class LocalMusicActivity extends AppCompatActivity { private ArrayList<String> listTitle; private ArrayList<Fragment> listFragment; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_local_music); initList(); initView(); } private void initList() { listTitle = new ArrayList<String>(); listTitle.add("单曲"); listTitle.add("歌手"); listTitle.add("专辑"); listFragment = new ArrayList<Fragment>(); listFragment.add(new SingleFragment()); listFragment.add(new SingerFragment()); listFragment.add(new SpecailFragment()); } private void initView() { TabLayout tabnavigation = (TabLayout) findViewById(R.id.tablelayout); ViewPager vpnavigation = (ViewPager) findViewById(R.id.viewpager); NavigationAdapter adapter = new NavigationAdapter(getSupportFragmentManager(),listFragment,listTitle); vpnavigation.setAdapter(adapter); tabnavigation.setupWithViewPager(vpnavigation); }
其中最主要的代码可参考下面的话
Design library的TabLayout 既实现了固定的选项卡 - view的宽度平均分配,也实现了可滚动的选项卡 - view宽度不固定同时可以横向滚动。选项卡可以在程序中动态添加:
TabLayout tabLayout = ...;tabLayout.addTab(tabLayout.newTab().setText("Tab 1"));
这里是重点
但是如果你使用ViewPager在tab之间横向切换,你可以直接从 PagerAdapter 的 getPageTitle() 中创建选项卡,然后使用setupWithViewPager()将两者联系在一起。它可以使tab的选中事件能更新ViewPager,同时ViewPager
的页面改变能更新tab的选中状态。
3.Adapter的java代码
public class NavigationAdapter extends FragmentPagerAdapter { private List<Fragment> listFragment; private List<String> listitle; public NavigationAdapter(FragmentManager fm ,ArrayList<Fragment> listFragment,ArrayList<String> listitle) { super(fm); this.listFragment = listFragment; this.listitle = listitle; } @Override public CharSequence getPageTitle(int position) { return listitle.get(position); } @Override public Fragment getItem(int i) { return listFragment.get(i); } @Override public int getCount() { return listFragment.size(); }}
0 0
- 基于5.0以后版本的viewpager与导航滑动条
- viewpager与导航条的滑动效果设置基于5.0以前版本
- viewpager + 滑动导航条的实现
- viewpager导航和滑动条使用
- viewpager导航和滑动条使用
- 滑动的导航条
- ViewPager与ViewFlipper实现图片导航的左右滑动
- Android自定义组件系列【10】——随ViewPager滑动的导航条
- android tablayout结合viewpager实现带导航条的滑动页卡
- android导航条与viewpager联动
- ViewPager导航滑动Demo
- Android-ViewPager滑动导航
- 自定义导航条的viewpager+fragment
- ViewPager 滑动条 动画
- ViewPager自定义滑动条
- viewpager+滑动条
- viewpager+滑动条
- 实现ViewPager底部条跟着ViewPager滑动的效果
- easyui datagrid 根据关键字值取行
- GDB调试core文件(3)
- 第一个JWPlayer应用
- Libc堆管理机制及漏洞利用技术 (一)
- Linux 命令之fuser
- 基于5.0以后版本的viewpager与导航滑动条
- java成神之路
- TweenMax 一
- PAT 1003. 我要通过!(20)
- Thread的join()方法和Object的wait(),notify(),notifyAll()方法
- 红尘缘深,前尘缘浅
- 2015年HEVC解码器组个人工作总结
- 利用Github pages 创建自己的私人博客
- 属性参数的区别