package teamhgl.xinwensudu;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;

import org.xutils.view.annotation.ContentView;
import org.xutils.view.annotation.ViewInject;
import org.xutils.x;

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

import teamhgl.xinwensudu.fragment.xiaocry_Fragment;

/**
* A simple {@link Fragment} subclass.
*/
@ContentView(R.layout.fragment_shipin)
public class ShiPin_Fragment extends Fragment {

@ViewInject(R.id.shipin_linearlayout)
private LinearLayout mshipin_layout;
@ViewInject(R.id.shipin_viewpager)
private ViewPager mshipin_pager;

private List<Fragment> mfragments;

private ShiPin_Viewpager_Adapter mviewpager_adapter;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = x.view().inject(this, inflater, container);

mfragments = new ArrayList<Fragment>();
xiaocry_Fragment xiaocry_fragment = new xiaocry_Fragment();
mfragments.add(xiaocry_fragment);
xiaocry_Fragment xiaocry_fragment1 = new xiaocry_Fragment();
mfragments.add(xiaocry_fragment1);
xiaocry_Fragment xiaocry_fragment2 = new xiaocry_Fragment();
mfragments.add(xiaocry_fragment2);
xiaocry_Fragment xiaocry_fragment3 = new xiaocry_Fragment();
mfragments.add(xiaocry_fragment3);

mviewpager_adapter = new ShiPin_Viewpager_Adapter(getFragmentManager());
mshipin_pager.setAdapter(mviewpager_adapter);
intitTab();
return rootView;
}

//ViewPager+fragment+tab
private void intitTab() {
mshipin_layout.getChildAt(0).setSelected(true);
//给tab添加监听
for (int i = 0; i < 4; i++) {
final View textview = mshipin_layout.getChildAt(i);
textview.setTag(i);
textview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = (int) textview.getTag();
mshipin_pager.setCurrentItem(position);
}
});
}
//滑动viewpager的监听
mshipin_pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
for (int i = 0; i < 4; i++) {
View childview = mshipin_layout.getChildAt(i);
if (i == position) {
childview.setSelected(true);
} else {
childview.setSelected(false);
}
}
}

@Override
public void onPageSelected(int position) {

}

@Override
public void onPageScrollStateChanged(int state) {

}
});
}

class ShiPin_Viewpager_Adapter extends FragmentPagerAdapter{

public ShiPin_Viewpager_Adapter(FragmentManager fm) {
super(fm);

}
@Override
public Fragment getItem(int position) {
return mfragments.get(position);
}

@Override
public int getCount() {
return mfragments.size();
}
}
}

ViewPager+tab+Fragment的滑动的更多相关文章

  1. 应用框架 ViewPager Tab Fragment SlidingMenu

    介绍 常见的应用框架 框架一:多个tab+Fragment,点击不同的tab加载不同的Fragment,不能滑动切换只能点击切换: 框架二:多个tab+ViewPager+FragmentPagerA ...

  2. 使用ViewPager和Fragment实现滑动导航

    ViewPage是android-support-v4.jar包提供的用于页面滑动的库,android-support-v4.jar是google推荐使用的一个类库,在项目中使用之前,你必须其添加到项 ...

  3. Android开发之ViewPager+ActionBar+Fragment实现响应式可滑动Tab

     今天我们要实现的这个效果呢,在Android的应用中十分地常见,我们可以看到下面两张图,无论是系统内置的联系人应用,还是AnyView的阅读器应用,我们总能找到这样的影子,当我们滑动屏幕时,Tab可 ...

  4. Android实战简易教程-第三十四枪(基于ViewPager和FragmentPagerAdapter实现滑动通用Tab)

    上一段时间写过一篇文章<基于ViewPager实现微信页面切换效果> 里面实现了相似微信Tab的页面.可是这样的实现方法有个问题.就是以后全部的代码逻辑都必须在MainActivity中实 ...

  5. 低版本系统兼容的ActionBar(六)用Fragment+ViewPager+Tab实现快速导航

    Tab经常和Fragment结合使用,这一讲我们用3种方式来实现这种快捷导航. 0.重要的两个监听器 MyTabListener,这个我们之前已经接触过了 package com.kale.actio ...

  6. Android tab导航的几种方法:ActionBar tab +fragment,Viewpager+pagerTitleStrip,开源框架ViewPageIndicator 和 ViewPager

    action来实现tab标签 并跟fragment结合 因为要写新闻客户端这个tab导航是必须的 这里我写几个小练习,希望大家融会贯通. 1actionbar设置tab +fragment 布局是个l ...

  7. ViewPager+Fragment实现滑动显示,且Fragment里面又放Fragment+viewPager

    思路:新建一个Activity,且这个Activity要继承FragementActivity,在Activity的布局文件中放入了一个viewPager,为了效果好看,还做了个导航,使得ViewPa ...

  8. 【Android 界面效果27】利用ViewPager、Fragment、PagerTabStrip实现多页面滑动效果

    本文主要介绍如何利用ViewPager.Fragment.PagerTabStrip实现多页面滑动效果.即google play首页.新浪微博消息(at.评论.私信.广播)页面的效果.ViewPage ...

  9. ViewPager结合Fragment进行无限滑动

    实现ViewPager结合Fragment实现无限循环切换,这里也是在适配器里面进行的,当然使用滑动监听也能够实现 import android.support.v4.app.Fragment; im ...

随机推荐

  1. codeforces 500A. New Year Transportation

    题目链接:http://codeforces.com/problemset/problem/500/A 题目意思:给出 n-1 个 cell,每个 cell 有一个值 ai,表示在这个编号为 i 的 ...

  2. js事件监听器用法实例详解

    这篇文章主要介绍了js事件监听器用法,以实例形式较为详细的分析了javascript事件监听器使用注意事项与相关技巧,需要的朋友可以参考下本文实例讲述了js事件监听器用法.分享给大家供大家参考.具体分 ...

  3. suse linux 命令

    1.修改vftpd配置文件   vi /etc/vsftpd .conf                       #listen=YES   vi /etc/xinetd.d/vsftpd     ...

  4. 【leetcode】length of last word (easy)

    题目: 输入字符串 s,返回其最后一个单词的长度 如 s="Hello World"   返回5 s="Hello World    "   返回5 s=&qu ...

  5. [USACO07MAR]黄金阵容均衡Gold Balanced L…(洛谷 1360)

    题目描述 Farmer John's N cows (1 ≤ N ≤ 100,000) share many similarities. In fact, FJ has been able to na ...

  6. JS打造的跟随鼠标移动的酷炫拓扑图案

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. C++联合

    原文地址:http://ideage.javaeye.com/blog/210614 联合(union)在C/C++里面见得并不多,但是在一些对内存要求特别严格的地方,联合又是频繁出现,那么究竟什么是 ...

  8. 在Linux中安装JDK的步骤

    相信不少学习Java的朋友都在Windows操作系统中安装过JDK,这里就不对JDK做详细的介绍了. 在Windows下安装JDK可参考:JDK的安装和配置 1.下载JDK 我们可以去官网(http: ...

  9. Java多线程---同步与锁

    一,线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏. 二.同步和锁定 1.锁的原理 Java中每个对象都有一个内置锁. 当程序运行到非静态的synchronized同步方法上时,自动 ...

  10. Mac平台下Opencv开发环境搭建

    OpenCV(Open Source Computer Vision Library),是一个开源的跨平台的计算机视觉库,它实现了图像处理和计算机视觉领域的很多通用算法,可以在多种计算机平台上运行,支 ...