ViewPager和Fragment组合 v4包下的页面切换
/*
*主页面下
*/
//-------------主页面下----------------------
package com.example.viewpagerfragment;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentPagerAdapter;
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.TextView;
//注意继承的是FragmentActivity在这里用的是android.support.v4.app.Fragment包下的Fragment
public class MainActivity extends FragmentActivity implements OnClickListener {
private ViewPager vp;
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);
//找到控件ViewPager
vp = (ViewPager) findViewById(R.id.vp);
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.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public int getCount() {
// 返回fragment页数
return 4;
}
@Override
public Fragment getItem(int arg0) {
//创建fragment
Fragment fragment=null;
switch (arg0) {
case 0:
fragment=new Fragment1();
break;
case 1:
fragment=new Fragment2();
break;
case 2:
fragment=new Fragment3();
break;
case 3:
fragment=new Fragment4();
break;
default:
break;
}
//返回fragment
return fragment;
}
});
//设置ViewPager的滑动监听 并实现3个方法
vp.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
switch (arg0) {
case 0:
//当fragment为第一张页面时,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) {
}
});
//设置textView的监听
tv_textview1.setOnClickListener(this);
tv_textview2.setOnClickListener(this);
tv_textview3.setOnClickListener(this);
tv_textview4.setOnClickListener(this);
//设置当进入activity时的默认页面
tv_textview1.setBackgroundColor(Color.RED);
vp.setCurrentItem(0);
}
@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;
}
//实现textview的监听的方法
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.tv_textview1:
//viewpager设置为第一fragment
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="40dp"
android:orientation="horizontal">
<TextView android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="40dp"
android:id="@+id/tv_textview1"
android:text="首页"
android:gravity="center"/>
<TextView android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="40dp"
android:id="@+id/tv_textview2"
android:text="首页1"
android:gravity="center"/>
<TextView android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="40dp"
android:id="@+id/tv_textview3"
android:text="首页2"
android:gravity="center"/>
<TextView android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="40dp"
android:id="@+id/tv_textview4"
android:text="首页3"
android:gravity="center"/>
</LinearLayout>
</LinearLayout>
//-----------------------创建-Fragment1---------------------
package com.example.viewpagerfragment;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class Fragment1 extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.frgment_item1, null);
return view;
}
}
//-----------------创建-------Fragment2-----------------------------
package com.example.viewpagerfragment;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class Fragment2 extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.frgment_item2, null);
return view;
}
}
//----------------创建------Fragment3---------------------
package com.example.viewpagerfragment;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class Fragment3 extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.frgment_item3, null);
return view;
}
}
//-----------------创建-----Fragment4----------------------
package com.example.viewpagerfragment;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class Fragment4 extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.frgment_item4, null);
return view;
}
}
//--------------创建布局文件----frgment_item1.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" >
<TextView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#00ffff"
android:text="1"
android:gravity="center"
/>
</LinearLayout>
//-----------------创建 布局文件 frgment_item2.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" >
<TextView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ff00ff"
android:text="2"
android:gravity="center"
/>
</LinearLayout>
//------------创建布局文件 frgment_item2.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" >
<TextView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffff00"
android:text="3"
android:gravity="center"
/>
</LinearLayout>
//--------------------创建布局文件 frgment_item4.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" >
<TextView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ff0000"
android:text="4"
android:gravity="center"
/>
</LinearLayout>
//--------------完了-----------------------
ViewPager和Fragment组合 v4包下的页面切换的更多相关文章
- app包中的fragment和v4包中的fragment的使用的区别
app包中的fragment和v4包中的fragment的使用的区别 1.尽量不要用app包中的fragment,因为这个是在3.0之后才有的,支持的版本太高,在低版本中是是用不了的 2.androi ...
- 14 Fragment的V4包的使用
activity_main.xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android ...
- FragmentManager V4包下 应该用FragmentActivity
import android.os.Bundle; import android.support.v4.app.FragmentActivity; public class MainActivity ...
- 微信小程序自定义下导航页面切换效果的合理写法
上图::: 导航模板内容页面的定义: <template name="naviBot"> <view class='navwrap t_cen font_26 ...
- Fragment用app包还是v4包解析
转自:http://blog.csdn.net/zc0908/article/details/50721553 1)问题简述 相信很多的朋友在调用Fragment都会遇到下面的情况: 这个时候问题来了 ...
- Android做法说明(3)---Fragment使用app袋或v4包解析
Android做法说明(3)---Fragment使用app袋或v4包解析 1)问题简述 相信非常多的朋友在调用Fragment都会遇到以下的情况: watermark/2/text/aHR0cDov ...
- Android v4包中的 SwipeRefreshLayout 官方的下拉刷新组件
SwipeRefreshLayout在v4包下,相应的v4Demo中也有相应的样例.假设没有请下载最新support-v4 SwipeRefreshLayout 仅仅能有一个直接子View,可能是一个 ...
- 关于Android studio下V4包 KeyEventCompat 类找不到问题
V4包 KeyEventCompat 类找不到问题 本文链接:https://blog.csdn.net/shanshan_1117/article/details/84344557 今天我把su ...
- 关于app.FragmentManager和v4包的FragmentPagerAdapter冲突
这几天发现一个问题我用getFragmentManager()得到FragmentManager不能放到FragmentPagerAdapter里面去.由于FragmentPagerAdapter里面 ...
随机推荐
- 分页加载的Fragment
package com.z.fragment; import android.os.Bundle; import android.os.Environment; import android.supp ...
- [ An Ac a Day ^_^ ] HihoCoder 1249 Xiongnu's Land 线性扫描
拿到了icpc北京站的参赛名额 感谢亮哥~ 虽然是地狱之战 但也要全力以赴! 题意: 有一片沙漠 n片绿洲 让你用一条线分成两部分 左≥右 而且分割线要尽量靠右 问线的位置 思路: 网上说可以二分 没 ...
- java.util.Iterator
public interface Iterator<E>: 对 collection 进行迭代的迭代器. 方法摘要: boolean hasNext() 如果仍有元素可以迭代,则返回 tr ...
- mysql多表链接查询
select area from areas where cityid=(select cityid from cities where city like '杭州%') and id!=(selec ...
- 监控gc
前几篇篇文章介绍了介绍了JVM的参数设置并给出了一些生产环境的JVM参数配置参考方案.正如之前文章中提到的JVM参数的设置需要根据应用的特性来进行设置,每个参数的设置都需要对JVM进行长时间的监测,并 ...
- java代理的深入浅出(三)-JavaAssist,ASM
简介 类似字节码操作方法还有ASM.几种动态编程方法相比较,在性能上Javassist高于反射,但低于ASM,因为Javassist增加了一层抽象.在实现成本上Javassist和反射都很低,而ASM ...
- 还在纠结 Flux 或 Relay,或许 Redux 更适合你
重磅消息,Redux 1.0 发布,终于可以放心用于生产环境了! 在这个端应用技术膨胀的时代,每天都有一大堆框架冒出,号称解决了 XYZ 等一系列牛 X 的问题,然后过一段时间就不被提起了.但开发的应 ...
- TP4056大电流1A使用注意事项
源:TP4056大电流1A使用注意事项 TP4056为南京拓微集成电路有限公司推出的锂电池充电产品系列中的大电流充电产品.具有最大电流1A,峰值电流1.1A,良好环境下甚至峰值1.2A的单节锂离子电池 ...
- SQL语句创建access表
CREATE TABLE Persons(ID AutoIncrement primary key,Id_P int NOT NULL,LastName varchar(255) NOT NULL,s ...
- 详细的SQL中datediff用法
DATEDIFF 函数 [日期和时间] 功能返回两个日期之间的间隔. 语法DATEDIFF ( date-part, date-expression-1, date-expression-2 ) da ...