Android:Fragment+ViewPager实现Tab滑动
- public class FragAdapter extends FragmentPagerAdapter {
- private List<Fragment> fragments ;
- public FragAdapter(FragmentManager fm){
- super(fm);
- }
- public FragAdapter(FragmentManager fm,List<Fragment> fragments) {
- super(fm);
- this.fragments = fragments;
- }
- @Override
- public Fragment getItem(int position) {
- return fragments.get(position);
- }
- @Override
- public int getCount() {
- return fragments.size();
- }
- /**
- * add the fragment to the special position
- * @param location the position be added to.
- * @param fragment
- */
- public void addFragment(int location,Fragment fragment){
- this.fragments.add(location, fragment);
- this.notifyDataSetChanged();
- }
- /**
- * add the fragment to the default position.the end of the list.
- * @param fragment
- */
- public void addFragment(Fragment fragment){
- this.fragments.add(fragment);
- this.notifyDataSetChanged();
- }
- }
MyFragment.java:
- public class MyFragment extends Fragment {
- private static final String TEXT_CHAT = "CHAT";
- /**
- * Factory method to generate a new instance of the fragment given a string .
- *
- * @param char 主页面要传过来的信息
- * @return A new instance of MyFragment with chat extras
- */
- public static MyFragment newInstance(String chat) {
- final MyFragment f = new MyFragment();
- final Bundle args = new Bundle();
- args.putString(TEXT_CHAT, chat);
- f.setArguments(args);
- return f;
- }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- }
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.myfragment, container, false);
- TextView tv = (TextView) view.findViewById(R.id.tv_fragment_text);
- String str = getArguments() != null ? getArguments().getString(TEXT_CHAT) : null;
- if(str != null){
- tv.setText(str);
- }else{
- tv.setText("获取字段出错了,求指导");
- }
- return view;
- }
- @Override
- public void onActivityCreated(Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- }
- }
MainActivity.java:
- public class MainActivity extends FragmentActivity implements OnClickListener {
- private ViewPager vp;
- private TextView tv_no1;
- private TextView tv_no2;
- private FragAdapter adapter;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- vp = (ViewPager) findViewById(R.id.vp_main);
- tv_no1 = (TextView) findViewById(R.id.tv_no1);
- tv_no2 = (TextView) findViewById(R.id.tv_no2);
- tv_no1.setOnClickListener(this);
- tv_no2.setOnClickListener(this);
- initViewPage();
- }
- /**
- * 初始化 view page的相关数据
- */
- private void initViewPage() {
- List<Fragment> fragments = new ArrayList<Fragment>();
- fragments.add(MyFragment.newInstance("我是第一个界面,看到我,看到我"));
- fragments.add(MyFragment.newInstance("我是第二个界面,看到我,看到我"));
- adapter = new FragAdapter(getSupportFragmentManager(), fragments);
- vp.setAdapter(adapter);
- vp.setCurrentItem();
- changeTextColor();
- vp.setOnPageChangeListener(new MyVPageChangeListener());
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.activity_main, menu);
- return true;
- }
- private class MyVPageChangeListener implements OnPageChangeListener {
- @Override
- public void onPageScrollStateChanged(int arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onPageScrolled(int arg0, float arg1, int arg2) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onPageSelected(int location) {
- changeTextColor(location);
- }
- }
- /**
- * 设置下面文本的颜色。
- * @param location
- */
- private void changeTextColor(int location) {
- switch (location) {
- case :
- tv_no1.setTextColor(Color.RED);
- tv_no2.setTextColor(Color.CYAN);
- break;
- case :
- tv_no2.setTextColor(Color.RED);
- tv_no1.setTextColor(Color.CYAN);
- break;
- default:
- break;
- }
- }
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.tv_no1:
- vp.setCurrentItem();
- break;
- case R.id.tv_no2:
- vp.setCurrentItem();
- break;
- default:
- break;
- }
- }
- }
FragAdapter.java:
Android:Fragment+ViewPager实现Tab滑动的更多相关文章
- Android之仿微信Tab滑动
这个项目实现了以下的功能:有三个标签聊天.发现和通讯录,左右滑动下面的ViewPager可以切换不同的标签,且标签下面的蓝色条可以随着手指的滑动来实时滑动.另外,如果第二次滑动到“聊天”界面,可以在“ ...
- 114、Android禁止ViewPager的左右滑动
有时候在开发中会遇到一些“诡异”的要求,比如在ViewPager中嵌入ListView,或者再嵌入一个ViewPager,那么在滑动的时候就会造成被嵌入的XXView不能滑动了,那么现在就把最外层的V ...
- Android listview viewpager解决冲突 滑动
Android listview viewpager滑动 跳动 冲突解决 ListView中嵌套ViewPage有或者滑动手势冲突解决 在listview 上使用 addHeaderView 在第 ...
- Android禁止ViewPager的左右滑动
转载请注明出处:http://blog.csdn.net/allen315410/article/details/40744287 有时候在开发中会遇到一些"诡异"的要求,比方在V ...
- 011 Android TabLayout+ViewPager实现顶部滑动效果(多个页面)
1.TabLayout介绍 TabLayout提供了一个水平的布局用来展示Tabs,很多应用都有这样的设计,典型的有网易新闻,简书,知乎等.TabLayout就可以很好的完成这一职责,首先TabLay ...
- [Android]使用ViewPager实现图片滑动展示
在淘宝等电商的APP首页经常能看到大幅的广告位,通常有多幅经常更新的图片用于展示促销信息,如下图所示: 通常会自动滚动,也可以根据手势滑动.我没有研究过人家的APP是通过什么实现的,可能有第三方已经封 ...
- Android使用ViewFlipper实现左右滑动效果面
在我的博客中,上次是使用ViewPager实现左右滑动的效果的,请看文章:Android使用ViewPager实现左右滑动效果. 这次我来使用ViewFlipper实现这种效果,好了,先看看效果吧: ...
- ViewPager+Fragment再探:和TAB滑动条一起三者结合
Fragment前篇: <Android Fragment初探:静态Fragment组成Activity> ViewPager前篇: <Android ViewPager初探:让页面 ...
- Android典型界面设计——ViewPage+Fragment实现区域顶部tab滑动切换
一.问题描写叙述 本系列将结合案例应用,陆续向大家介绍一些Android典型界面的设计,首先说说tab导航,导航分为一层和两层(底部区块+区域内头部导航).主要实现方案有RadioGroup+View ...
随机推荐
- TCP/IP三次握手
题目: TCP建立连接的过程采用三次握手,已知第三次握手报文的发送序列号为1000,确认序列号为2000,请问第二次握手报文的发送序列号和确认序列号分别为 1999,999 1999,1000 999 ...
- navagationController 的子控制器如何取消右滑返回
1.首先在navagationController的某个控制器中 遵守:UIGestureRecognizerDelegate 2.在viewDidload中设置: self.navigationCo ...
- Java实战之03Spring-05Spring中的事务控制(基于AOP)
五.Spring中的事务控制(基于AOP) 1.Spring中事务有关的接口 1.1.明确: JavaEE体系进行分层开发,事务处理位于业务层,Spring提供了分层设计业务层的事务处理解决方案 1. ...
- ZOJ 1122 Clock(模拟)
Clock Time Limit: 2 Seconds Memory Limit: 65536 KB You are given a standard 12-hour clock with ...
- HDOJ1005 数列
Problem Description A number sequence is defined as follows:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) ...
- ThinkPHP3.2 加载过程(三)
上次回顾: IS_CGI ,IS_WIN,IS_CLI,MAGIC_QUOTES_GPC干嘛用 IS_WIN 看了一下后面的代码 基本上就是为了保证在不同环境下运行时,由于有些操作系统会对文件路径大 ...
- PHPExcel说明
下面是总结的几个使用方法include 'PHPExcel.php';include 'PHPExcel/Writer/Excel2007.php';//或者include 'PHPExcel/Wri ...
- controller.pp 各组件的安装顺序
controller 属性: admin_address => $controller_node_address, public_address => $c ...
- ubuntu 12.04 安装 nginx+php+mysql web服务器
Nginx 是一个轻量级,以占用系统资源少,运行效率而成为web服务器的后起之秀,国内现在很多大型网站都以使用nginx,包括腾讯.新浪等大型信息网站,还有淘宝网站使用的是nginx二次开发的web服 ...
- 【JTA】JTA允许应用程序执行分布式事务处理
JTA,即Java Transaction API,JTA允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据.JDBC驱动程序的JTA支持极大地增强了数据访问能力. htt ...