ViewPager +Fragment 滑动游标
一、我的博客https://github.com/anan03/ananwork/tree/master/anan
1.加入
compile 'com.gxz.pagerslidingtabstrip:library:1.3.1'
2.加入布局;
<com.gxz.PagerSlidingTabStrip
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="40dp" /> <android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tabs" />
3.查找控件设置属性
pager = (ViewPager) findViewById(R.id.pager);
tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
list.add("Tab " + i);
}
pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager(), list));
tabs.setViewPager(pager);
pager.setCurrentItem(1);
setTabsValue();
}
private PagerSlidingTabStrip tabs;
private ViewPager pager;
/**
* 对PagerSlidingTabStrip的各项属性进行赋值。
*/
private void setTabsValue() {
// 设置Tab是自动填充满屏幕的
tabs.setShouldExpand(true); // 设置Tab的分割线的颜色
tabs.setDividerColor(getResources().getColor(R.color.color_80cbc4));
// 设置分割线的上下的间距,传入的是dp
tabs.setDividerPaddingTopBottom(12); // 设置Tab底部线的高度,传入的是dp
tabs.setUnderlineHeight(1);
//设置Tab底部线的颜色
tabs.setUnderlineColor(getResources().getColor(R.color.color_1A000000)); // 设置Tab 指示器Indicator的高度,传入的是dp
tabs.setIndicatorHeight(4);
// 设置Tab Indicator的颜色
tabs.setIndicatorColor(getResources().getColor(R.color.color_45c01a)); // 设置Tab标题文字的大小,传入的是dp
tabs.setTextSize(16);
// 设置选中Tab文字的颜色
tabs.setSelectedTextColor(getResources().getColor(R.color.color_45c01a));
//设置正常Tab文字的颜色
tabs.setTextColor(getResources().getColor(R.color.color_C231C7)); // 设置点击Tab时的背景色
tabs.setTabBackground(R.drawable.background_tab); //是否支持动画渐变(颜色渐变和文字大小渐变)
tabs.setFadeEnabled(true);
// 设置最大缩放,是正常状态的0.3倍
tabs.setZoomMax(0.3F);
//设置Tab文字的左右间距,传入的是dp
tabs.setTabPaddingLeftRight(20);
tabs.setOnPagerTitleItemClickListener(new PagerSlidingTabStrip.OnPagerTitleItemClickListener() {
@Override
public void onSingleClickItem(int position) {
Toast.makeText(MainActivity.this, "单击", Toast.LENGTH_SHORT).show();
} @Override
public void onDoubleClickItem(int position) {
Toast.makeText(MainActivity.this, "双击", Toast.LENGTH_SHORT).show();
}
});
4.设置适配器以及Fragment
package com.lvshandian.myapplication.adapter; import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.view.ViewGroup; import com.lvshandian.myapplication.fragment.FragmentContent; import java.util.ArrayList; /**
* @author 顾修忠-guxiuzhong@youku.com/gfj19900401@163.com
* @Title: MyPagerAdapter
* @Package com.guxiuzhong.pagerslidingtabstrip.adapter
* @Description:
* @date 15/11/29
* @time 下午12:53
*/
public class MyPagerAdapter extends FragmentPagerAdapter { private ArrayList<String> titles; public MyPagerAdapter(FragmentManager fm, ArrayList<String> list) {
super(fm);
this.titles = list;
} @Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
} @Override
public int getCount() {
return titles.size();
} @Override
public Object instantiateItem(ViewGroup container, int position) {
return super.instantiateItem(container, position);
} @Override
public Fragment getItem(int position) {
Bundle b = new Bundle();
b.putString("title", titles.get(position));
return FragmentContent.getInstance(b);
}
} Fragment
package com.lvshandian.myapplication.fragment; import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView; import com.lvshandian.myapplication.R; /**
* Created by guxiuzhong on 2015/7/6.
*/
public class FragmentContent extends Fragment { public static Fragment getInstance(Bundle bundle) {
FragmentContent fragment = new FragmentContent();
fragment.setArguments(bundle);
return fragment;
} @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
} @Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragmnet_layout, container, false);
} @Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
initView(view);
} private void initView(View view) {
TextView tv = (TextView) view.findViewById(R.id.tv_id);
tv.setText(getArguments().getString("title"));
}
}
二、原博客
https://github.com/ta893115871/PagerSlidingTabStrip
https://github.com/astuetz/PagerSlidingTabStrip https://github.com/gb-nick/PagerSlidingTabStrip
ViewPager +Fragment 滑动游标的更多相关文章
- viewpager+fragment滑动切换卡顿问题
最近在做项目的时候遇到个问题,viewpager中的fragment添加使用listview添加数据后出现滑动卡顿,造成用户体验感极差.找了很久的资料,也试了很多大方法,在这里给大家分享下: 1.添加 ...
- viewpager fragment 滑动界面
先新建几个fragment,包括java和xml 然后在主界面的布局文件中: <android.support.v4.view.ViewPager android:id="@+id/m ...
- ViewPager+Fragment 滑动菜单效果 实现步骤
1.xml中引用ViewPager <android.support.v4.view.ViewPager android:id="@+id/viewPa ...
- Android中ViewPager实现滑动条及与Fragment结合的实例教程
ViewPager类主要被用来实现可滑动的视图功能,这里我们就来共同学习Android中ViewPager实现滑动条及与Fragment结合的实例教程,需要的朋友可以参考下 自主实现滑动指示条先上一个 ...
- 使用ViewPager+Fragment来实现带滚动条的多屏滑动-IndicatorFragmentActivity
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/17201587 介绍 在android应用中,多屏滑动是一种很常见的风格,博主 ...
- Android Studio 使用ViewPager + Fragment实现滑动菜单Tab效果 --简易版
描述: 之前有做过一个记账本APP,拿来练手的,做的很简单,是用Eclipse开发的: 最近想把这个APP重新完善一下,添加了一些新的功能,并选用Android Studio来开发: APP已经完善了 ...
- Android中ViewPager+Fragment取消(禁止)预加载延迟加载(懒加载)问题解决方案
转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53205878本文出自[DylanAndroid的博客] Android中Vie ...
- Android - ViewPager+Fragment初始化问题
Android应用开发中,经常会用到ViewPager + Fragment,虽然效果不错,但随之而来的还有一些问题,下面就说说其中的初始化问题. ViewPager初始化时会预加载前后的2个页面,即 ...
- ViewPager -- Fragment 切换卡顿 性能优化
当ViewPager切换到当前的Fragment时,Fragment会加载布局并显示内容,如果用户这时快速切换ViewPager,即 Fragment需要加载UI内容,而又频繁地切换Fragment, ...
随机推荐
- web api与webservice(转)
webservice走HTTP协议和80端口而你说的api,用的协议和端口,是根据开发人员定义的 这么说吧,api类似于cs架构,需要同时开发客户端API和服务器端程序而WebService则类似于b ...
- css控制段落
<p></p>标签:一段话或者段落适宜于用p标签: 段落缩进:text-indent:50px: 文字方向:text-align:center居中.left往左显示.right ...
- C++学习笔记 构造&析构 友元 new&delete
构造&析构函数 构造函数 定义:与类同名,可以有参可以无参,主要功能用于在类的对象创建时定义初始化的状态,无返回值,也不能用void修饰,构造函数不能被直接调用,必须通过new运算符在创建对象 ...
- Issue 0:发刊词
最近读吴军博士的文章,很受感悟.知识的成体系地积累过程对一个人的素养提高很有帮助,所以打算开通这本电子期刊,以一周一篇文章的形式汇总今后的知识体系. 宗旨:及时和团队讨论,反馈:善于利用工具.时间越长 ...
- c++防止客户端多开巧妙代码
在读OBS源码时看到一个比较有意思的关于防止用户多开程序的写法,简单有效,记录下 //make sure only one instance of the application can be ope ...
- PC管理端与评委云打分配合步骤及疑难问题汇编,即如何使用PC管理端的云服务管理功能
一.前期环境及数据准备 A.PC管理端主要流程 1.进入菜单 编辑/选项/服务器 界面,如下图所示,采用我官方所提供的云服务,不采用自己假设的AppWeb服务. 切记:AppWeb服务和云服务只能二选 ...
- Easy Tag Write(3.2)
package skyseraph.android.util; /** * @Title : LogUtil.java * @Package : tcl.nfc.phone.util * @Class ...
- 关于跨域GET、POST请求的小结//////////////////////zzzzzzz
JQuery:$.ajax/$.getJSON支持jsonp格式的跨域,但是只支持GET方式,暂不支持POST: so,跨域POST是个值得研究的问题啊!万能的JQuery无法跨域POST:鉴于基本国 ...
- 00Linux学习及角色定义
一.嵌入式Linux学习顺序 二.Linux架构 三.Linux工程师角色划分 四. 嵌入式应用工程师工作内容与所需知识点 从图 1可以知道, 嵌入式应用工程师主要从事与产品相关的嵌入式 Linux ...
- 基于Centos7+Nginx+Tomcat8的负载均衡服务器的搭建
由于工作的需求,在使用中,需要搭建负载均衡,研究了Apache+Tomat负载均衡的方案,并且通过检索相关的文章,进行了比较发现,Apache负载负载均衡在使用的效率上,远远不如Nginx的效率高,因 ...