使用 ViewPagerIndicator + FragmentPagerAdapter 实现 tab 切换
来源:互联网 发布:怎么查看占用的端口号 编辑:程序博客网 时间:2024/06/12 22:45
主界面
本项目导入的是 v4 包的Fragment
package com.gaoo.tab04;import com.viewpagerindicator.TabPageIndicator;import java.util.List;/** * 使用 ViewPagerIndicator + FragmentPagerAdapter 实现 tab 切换 * //导入 Indicator_library */public class MainActivity extends FragmentActivity { private ViewPager mViewPager; //viewpager TabPageIndicator mTabPageIndicator; //指示器 List<Fragment> mFragmentList; //数据源,类型是 Fragment private TabAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); initView(); } private void initView() { mViewPager = (ViewPager) findViewById(R.id.id_viewPager); mTabPageIndicator = (TabPageIndicator) findViewById(R.id.id_indicator); mAdapter = new TabAdapter(getSupportFragmentManager()); mViewPager.setAdapter(mAdapter); mTabPageIndicator.setViewPager(mViewPager,0); //设置默认选中页 }}
Adapter 继承自 FragmentPagerAdapter
实现了2个方法和另外一个 getPageTitle(int position) 方法.
package com.gaoo.tab04;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;/** * 指示器的 适配器 adapter */public class TabAdapter extends FragmentPagerAdapter { public static String[] TITLES = new String[]{"金系掌门","木系掌门","土系掌门","水系","火系"}; public TabAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { TabFragment tabFragment = new TabFragment(position); //在这里把 position传入 是为了不同的位置显示不同的标题 return tabFragment; } @Override public int getCount() { return TITLES.length; } @Override public CharSequence getPageTitle(int position) { return TITLES[position]; }}
Fragment
/** * Fragment的内容区域 */public class TabFragment extends Fragment { public TabFragment() { } private int pos; public TabFragment(int position) { this.pos = position; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.frag, null); TextView tv = (TextView) view.findViewById(R.id.id_text); tv.setText(TabAdapter.TITLES[pos]); return view; }}
布局文件 activity_main.xml
<?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"> <include layout="@layout/top"/> <com.viewpagerindicator.TabPageIndicator android:id="@+id/id_indicator" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/transparent"> </com.viewpagerindicator.TabPageIndicator> <android.support.v4.view.ViewPager android:id="@+id/id_viewPager" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v4.view.ViewPager></LinearLayout>
顶部布局 top.xml
<?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="48dp" android:background="#51badd" android:orientation="horizontal"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="3dp" android:background="@drawable/logo"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="3dp" android:text="大运河" android:textColor="#ebeceaea" android:textSize="20sp"/></LinearLayout>
项目中需要用到 library_viewpagerindicator 类库
源码下载地址:
链接:http://pan.baidu.com/s/1c2iaxBq 密码:522p
项目运行效果图
0 0
- 使用 ViewPagerIndicator + FragmentPagerAdapter 实现 tab 切换
- FragmentPagerAdapter+ViewPager实现Tab切换效果
- 使用ViewpagerIndicator与viewpager实现tab标签
- ViewPagerIndicator与ViewPager实现Tab
- ViewPager与FragmentPagerAdapter实现Tab
- 使用angularJs实现tab切换
- 使用angularJs实现tab切换
- Android Tab实现之Viewpager+ViewpagerIndicator
- 用ViewPagerIndicator实现App主页面Tab
- ViewPagerIndicator的导入以及实现tab
- Android ViewPager+ViewPagerIndicator实现Tab主界面
- 使用GridView和ActivityGroup实现tab切换
- android:使用fragment实现tab切换
- 使用纯css实现tab切换
- 使用ViewPagerIndicator结合ViewPager实现网易新闻客户端的Tab标签效果
- FragmentPagerAdapter和ViewPager实现滑动切换
- Javascript实现Tab切换
- 实现tab切换效果
- 【题】【树(最大生成树&LCA)】NKOJ 2495 货车运输 【NOIP2013-D1T3】
- U盘/SD卡挂载
- 15级第三周会议
- 【问题-java-json】josn的发送与接收(全)解析json对象与字符串在js中的区别,以及后端spring该如何接收?
- 模拟比赛 树套环问题
- 使用 ViewPagerIndicator + FragmentPagerAdapter 实现 tab 切换
- IMS Modify Call (1) send request 发出升级视频请求
- TimesTen应用开发支持和语言选择
- IG NZT 安装使用过程中可能遇到的问题解决办法
- Codeforces-696B Puzzles
- 悼念512汶川大地震遇难同胞——老人是真饿了
- 在VPS上用脚本实现ShadowSocks的进程守护
- Java网页爬虫utf-8
- IMS Modify Call (2) receive request 收到视频升级请求