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 ...
随机推荐
- Asp.net 定时写入文本记录
Asp.net 定时写入文本记录 public static string FileAddress = "c:\\TimerLog.txt"; protected void Pag ...
- Ext.Net学习笔记15:Ext.Net GridPanel 汇总(Summary)用法
Ext.Net学习笔记15:Ext.Net GridPanel 汇总(Summary)用法 Summary的用法和Group一样简单,分为两步: 启用Summary功能 在Feature标签内,添加如 ...
- json转换(c#后台生成json的方法)
此文转自:http://bbs.csdn.net/topics/380200497,为了方便自己记忆才以文章形式保存. using System; using System.Collections.G ...
- 三【相关度 相似度查询与计算】相似度到大数据查找之Mysql 文章匹配的一些思路与提高查询速度
记录下,在上2回的数据基础之上,附带一个互信息(MI,Mutual Information)可以计算词之间的相关度 标准互信息 MI(X,Y)=log2p(x,y)/p(x)p(y) 值越大于0 则趋 ...
- [转]从一行代码里面学点JavaScript
现如今,JavaScript无处不在,因此关于JavaScript的新知识也是层出不穷.JavaScript的特点在于,要学习它的语法入门简简单,但是要精通使用它的方式却是一件不容易的事. 来看看下面 ...
- Java基础从数组到集合之间关键字的区别!!!!
1.&& 和 &区别和联系: 相同点 : 结果是一样的. 不同点 :如果使用双&号判断,如果说条件一为false,不会判断条件二,但是单&号会继续判 ...
- IP address/地址 检查
1.Determine if a string is a valid IP address in C Beej's Guide to Network Programming 2.9.14. inet_ ...
- HPDL380G8平台11.2.0.3 RAC实施手册
HPDL380G8平台11.2.0.3 RAC实施手册 1 前言 此文档详细描述了Oracle 11gR2 数据库在HPDL380G上的安装RAC的检查及安装步骤.文档中#表示root用户执行,$ ...
- 通过 ANE(Adobe Native Extension) 启动Andriod服务 推送消息(三)
jar包完成后,剩下就是要构建ANE包来供实际程序调用. 首先要建两个Flex库项目, default那个是官方建议加上的,仅用于不在真实环境下编译调试的时候有个默认接口不至于调用不成功报错,项目结构 ...
- jquery checkbox 选中 全选 插件
checkbox 选中 全选 在项目中经常用到,但是不同的程序员写出的东西各有差异,在此整合了jquery checkbox插件,用起来很方便,也总结了我们项目中通常会出现问题的地方,一行代码搞定. ...