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 ...
随机推荐
- 第十四篇、Ajax与Json
1.Ajax的核心知识 1.1 XMLHttpRequest对象 function loadName(){ var xmlHttp; if(window.XMLHttpRequest){ xmlHtt ...
- javaee学习-新建servlet 直接返回html
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletExcepti ...
- Eclipse查看历史代码
选中要查看的文件(.class等) 右击->Team->Show Local History
- 转载:一句代码改变Swing难看的字体
Swing 皮肤的一个键值:swing.boldMetal 默认为 true因此造成了默认字体极度难看: 其实一句代码就能解决问题:UIManager.put("swing.boldMeta ...
- iOS数据库操作流程
SQLite最新的版本是3.0,使用之前应该先导入libsqlite3.0.dylib 1.导入流程 2.iOS中操作数据库的流程 打开数据库 准备SQL数据库 执行SQL数据库 语句完结 关闭数据库 ...
- eclipse中配置maven的web项目
提高效率,一般都会使用IED如eclipse来帮助开发.eclipse中单独建立一个web项目或者是maven项目是可以通过插件很容易完成的,但是如果要结合2者,就需要先建立一个,然后再转换或使原型. ...
- Corosync+Pacemaker+DRBD+MySQL 实现高可用(HA)的MySQL集群
大纲一.前言二.环境准备三.Corosync 安装与配置四.Pacemaker 安装与配置五.DRBD 安装与配置六.MySQL 安装与配置七.crmsh 资源管理 推荐阅读: Linux 高可用(H ...
- mirantis fuel puppet执行顺序 和 对整个项目代码的执行流程理解
stage执行顺序 stage {'zero': } -> stage {'first': } -> stage {'openstack-custom-repo': } -> sta ...
- SQL函数说明大全 (转)
一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用或有意义的结果.这些要求包括:执行计算与数学运算.转换数据.解析数值.组合值和聚合一个范围内的值等. 下表给出了T-SQL函数的类别和描 ...
- 【BZOJ】3309: DZY Loves Math 莫比乌斯反演优化
3309: DZY Loves Math Description 对于正整数n,定义f(n)为n所含质因子的最大幂指数.例如f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10007) ...