//--------------主页面-------------------------------

package com.bw.test;

import java.util.ArrayList;
import java.util.List;

import com.bw.test.adapter.MyViewPagerAdapter;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

private ViewPager vp;
    private List<View> views=new ArrayList<View>();
    private TextView tv_textview1;
    private TextView tv_textview2;
    private TextView tv_textview3;
    private TextView tv_textview4;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //找到button按钮控件
        tv_textview1 = (TextView) findViewById(R.id.tv_textview1);
        tv_textview2 = (TextView) findViewById(R.id.tv_textview2);
        tv_textview3 = (TextView) findViewById(R.id.tv_textview3);
        tv_textview4 = (TextView) findViewById(R.id.tv_textview4);
        //找到ViewPager控件
        vp = (ViewPager) findViewById(R.id.vp);
        //设置ViewPager的适配器
        MyViewPagerAdapter adapter=new MyViewPagerAdapter(views, this);
        vp.setAdapter(adapter);
        //初始化view
        initView();
        //设置ViewPager滑动监听
        vp.setOnPageChangeListener(new OnPageChangeListener() {
            
            @Override
            public void onPageSelected(int arg0) {
                switch (arg0) {
                case 0:
                    //设置textview的背景颜色
                    tv_textview1.setBackgroundColor(Color.RED);                    
                    tv_textview2.setBackgroundColor(Color.WHITE);
                    tv_textview3.setBackgroundColor(Color.WHITE);
                    tv_textview4.setBackgroundColor(Color.WHITE);
                    break;
                case 1:
                    tv_textview1.setBackgroundColor(Color.WHITE);
                    tv_textview2.setBackgroundColor(Color.RED);    
                    tv_textview3.setBackgroundColor(Color.WHITE);
                    tv_textview4.setBackgroundColor(Color.WHITE);
                    break;
                case 2:
                    tv_textview1.setBackgroundColor(Color.WHITE);
                    tv_textview2.setBackgroundColor(Color.WHITE);
                    tv_textview3.setBackgroundColor(Color.RED);    
                    tv_textview4.setBackgroundColor(Color.WHITE);
                    break;
                case 3:
                    tv_textview1.setBackgroundColor(Color.WHITE);
                    tv_textview2.setBackgroundColor(Color.WHITE);
                    tv_textview3.setBackgroundColor(Color.WHITE);
                    tv_textview4.setBackgroundColor(Color.RED);    
                    break;

default:
                    break;
                }
                
            }
            
            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                
                
            }
            
            @Override
            public void onPageScrollStateChanged(int arg0) {
                
                
            }
        });
        //设置监听
        tv_textview1.setOnClickListener(this);
        tv_textview2.setOnClickListener(this);
        tv_textview3.setOnClickListener(this);
        tv_textview4.setOnClickListener(this);
        //设置默认页面
        tv_textview1.setBackgroundColor(Color.RED);                            
        vp.setCurrentItem(0);
    }

//初始化view
    private void initView() {
        //创建view布局
        View view1=View.inflate(this, R.layout.view1, null);
        View view2=View.inflate(this, R.layout.view2, null);
        View view3=View.inflate(this, R.layout.view3, null);
        View view4=View.inflate(this, R.layout.view4, null);
        //把view布局添加到集合
        views.add(view1);
        views.add(view2);
        views.add(view3);
        views.add(view4);

}

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

@Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.tv_textview1:
            vp.setCurrentItem(0);
            break;
        case R.id.tv_textview2:
            vp.setCurrentItem(1);
            break;
        case R.id.tv_textview3:
            vp.setCurrentItem(2);
            break;
        case R.id.tv_textview4:
            vp.setCurrentItem(3);
            break;

default:
            break;
        }
        
    }
    
}

//=============主布局文件    main.xml===========================

<LinearLayout 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"
    android:orientation="vertical"
     >

<android.support.v4.view.ViewPager
       android:layout_width="fill_parent"
       android:layout_height="0dp"
       android:layout_weight="1"
       android:id="@+id/vp"></android.support.v4.view.ViewPager>
   <LinearLayout
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:orientation="horizontal">
       <TextView
           android:layout_weight="1"
           android:layout_width="0dp"
           android:layout_height="40dp"
           android:text="首页"
           android:gravity="center"
           android:id="@+id/tv_textview1"/>
       <TextView
           android:layout_weight="1"
           android:layout_width="0dp"
           android:layout_height="40dp"
           android:text="详情"
           android:gravity="center"
           android:id="@+id/tv_textview2"/>
       <TextView
           android:layout_weight="1"
           android:layout_width="0dp"
           android:layout_height="40dp"
           android:text="购物车"
           android:gravity="center"
           android:id="@+id/tv_textview3"/>
       <TextView
           android:layout_weight="1"
           android:layout_width="0dp"
           android:layout_height="40dp"
           android:text="我的"
           android:gravity="center"
           android:id="@+id/tv_textview4"/>
   </LinearLayout>

</LinearLayout>

//============创建一个MyViewPagerAdapter,继承PagerAdapter并实现里面的方法=========================

package com.bw.test.adapter;

import java.util.List;

import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;

//创建一个MyViewPagerAdapter,继承PagerAdapter并实现里面的方法

public class MyViewPagerAdapter extends PagerAdapter{
    private List<View> views;
    private Context context;
    
    //有参构造
    public MyViewPagerAdapter(List<View> views, Context context) {
        super();
        this.views = views;
        this.context = context;
    }
    //获得长度
    @Override
    public int getCount() {
        
        return views.size();
    }

@Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        
        return arg0==arg1;
    }
    //展示的view
    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        //获得展示的view
        View view=views.get(position);
        //添加到容器
        container.addView(view);
        //返回显示的view
        return view;
    }
    //销毁view
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        //从容器中移除view
        container.removeView((View) object);
    }

}

//============创建   view1.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"
    android:background="#ff00ff">
    
</LinearLayout>

//=======创建   view2 .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"
    android:background="#ffff00" >

</LinearLayout>

//=====创建  view3.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"
    android:background="#0000ff" >

</LinearLayout>

//=========创建  view4.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"
    android:background="#00ffff" >

</LinearLayout>

//=======完了,做完之后就是页面的切换========

ViewPager和View组合 实现页面的切换的更多相关文章

  1. ViewPager+Fragment实现页面的切换

    新知识,新摘要: 效果图:framgent导入包都是v4包下,谨慎导入错误! 首先设置viewPager布局: <?xml version="1.0" encoding=&q ...

  2. 转:Android ViewPager多页面滑动切换以及动画效果

    一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式, 白色横条会移动到相应的页卡头标下.这是一个动画效果,白条是缓慢滑动过去的.好了 ...

  3. Android ViewPager多页面滑动切换以及动画效果

    一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式,白色横条会移动到相应的页卡头标下.这是一个动画效果,白条是缓慢滑动过去的.好了, ...

  4. Android——ViewPager多页面滑动切换以及动画效果

    一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式,白色横条会移动到相应的页卡头标下.这是一个动画效果,白条是缓慢滑动过去的.好了, ...

  5. Android开发之利用ViewPager实现页面的切换(仿微信、QQ)

    这里利用ViewPager实现页面的滑动,下面直接上代码: 1.首先写一个Activity,然后将要滑动的Fragment镶嵌到写好的Activity中. Activity的布局文件:activity ...

  6. ViewPager和View的事件响应规则

    案例背景: 当我们实现viewpager的自动切换界面操作的时候,如果需要增加点击图片viewpager停止自动切换,松开手指viewpager自动切换又继续执行的逻辑,正常思维下实现代码如下所示: ...

  7. VC/Wince 实现仿Win8 Metro风格界面2——页面滑动切换(附效果图)

    前几天开始写仿Win8 Metro界面文章,部分网友觉得不错,感谢各位的意见.本来今天一直在折腾Android VLC播放器,没时间写.不过明天休息,所以今天就抽时间先写一下. 言归正传,我们都知道W ...

  8. selenium多个标签页的切换(弹出新页面的切换)

    1_windows = driver.current_window_handle #定位当前页面句柄 all_handles = driver.window_handles #获取全部页面句柄 for ...

  9. 20ViewPager demo1,2:接收ViewPager展示View的使用

    Demo1 MainActivity .JAVA package com.qf.day20_viewpager_demo1; import java.util.ArrayList; import ja ...

随机推荐

  1. Java I/O 操作的一些基本知识

    1.文件类:File ,也是唯一的单独的文件类.可以对文件进行操作.其方法有:exists(),delete(),isDirectory(),createNewFile(),getName(),get ...

  2. blur事件

    blur事件是在元素失去焦点的时候触发,那么失去焦点的前提便是获得焦点. 哪些元素可以获取焦点呢? 1.超链接 2.input button textarea (without disabled) 3 ...

  3. Python 拆分字符串

    数:split() Python中有split()和os.path.split()两个函数,具体作用如下:split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list ...

  4. java中的Volatile 变量

    Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”:与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少, ...

  5. UIScrollView 加载多个view view还可以交换顺序(2)

    在上的代码中 UIview都在一个页面 要是每一个view对应一个页面 操作每一个view代码都在viewcontroller里面就会很乱,那么我们就将view重新做一下 创建想要的页面继承与view ...

  6. 2.4 chrome 开发者工具

    开发者工具顶部有Elements.Console.Network等八个栏目.常用的有三个:Elements,用来查看需爬取字段的HTML标签信息:Console,可以检测你的JS代码:Network, ...

  7. Webdriver实现对菜单栏的灵活切换功能,附上代码,类似的菜单栏切换可以自己封装

    有时一级菜单下可能会有二级菜单,这时就需要对其下面的元素进行判断,如果使用webdriver原生的方法去获取未知的元素进行判断,显然是不可能的,因为webdriver本身就是基于明确的元素进行定位的, ...

  8. mipi 调试经验(转)

    以下是最近几个月在调试 MIPI DSI / CSI 的一些经验总结,因为协议有专门的文档,所以这里就记录一些常用知识点: 一.D-PHY 1.传输模式 LP(Low-Power) 模式:用于传输控制 ...

  9. fragement生命周期

    转自http://www.cnblogs.com/mybkn/ 你的fragment们可以向activity的菜单(按Manu键时出现的东西)添加项,同时也可向动作栏(界面中顶部的那个区域)添加条目, ...

  10. java代码如何读取properties文件

    我们在开发工程中,有时候需要在Java代码中定义一些在部署生产环境时容易改变的变量,还需要我们单独放在一个外部属性文件中,方便我们将来修改.这里列出了两种比较方便的方式. 一.在Spring配置文件中 ...