VIewPage+Fragment
效果图:
代码
public class NewOrderListFargmentActivity extends BaseActivity implements OnClickListener { private LinearLayout lin_left_base;
private ViewPager vpSlideView;
private List<Fragment> fragmentsList=null;; private int currntPosition = 0;
private LinearLayout llAboveLable;
private TextView tvAllHotel;
private TextView tvFastChain;
private TextView tvTodayBargain;
private ImageView ivSlideLine;
public DeliveryOrderFragment delivery;
public FinishOrderFragment finish;
public GrabOrderFragment grab;
private TextView yiyuyue;
private TextView tv_fast_finsh;
public YuYueOrderFragment mYuYueFragment;
private LinearLayout title_lin;
int temp=-1;
@Override
protected void localOnCreate(Bundle savedInstanceState) {
setContentView(R.layout.order_layout);
setTitle("全部订单");
TextView titleView = getTitleView();
titleView.setGravity(Gravity.CENTER);
setLeft("");
init();
initTab();
initPager();
initData();
setListenter();
} private void init() {
vpSlideView = (ViewPager) findViewById(R.id.vp_slide_view); } private void initData() { } private void setListenter() { }
private void initTab() {
llAboveLable = (LinearLayout) findViewById(R.id.ll_above_lable);
tvAllHotel = (TextView) findViewById(R.id.tv_all_hotel);
//已完成
tv_fast_finsh = (TextView) findViewById(R.id.tv_fast_finsh);
//配送中
tvFastChain = (TextView) findViewById(R.id.tv_fast_chain); ivSlideLine = (ImageView) findViewById(R.id.iv_slide_line);
/* 设置 偏移量 计算横线 偏移量
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.label_slide_line);
int imgWidth = bitmap.getWidth();
int offset = (getScreenWidth() /4 - imgWidth) / 2;
// 设置偏移位置
Matrix matrix = new Matrix();
matrix.postTranslate(offset, 0);
ivSlideLine.setImageMatrix(matrix);
*/
LinearLayout.LayoutParams lp = (android.widget.LinearLayout.LayoutParams) ivSlideLine
.getLayoutParams();
lp.width = getScreenWidth() / 3;
ivSlideLine.setLayoutParams(lp); //设置横线的宽度 } public int getScreenWidth() {
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenWidth = dm.widthPixels;
return screenWidth;
}
private void initPager() {
fragmentsList= new ArrayList<Fragment>();
delivery = new DeliveryOrderFragment();
finish = new FinishOrderFragment();
grab = new GrabOrderFragment(); mYuYueFragment = new YuYueOrderFragment(); fragmentsList.add(grab);
fragmentsList.add(delivery);
fragmentsList.add(finish);
// fragmentsList.add(mYuYueFragment); FragmentPagerAdapter mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public int getCount() {
return fragmentsList.size();
} @Override
public Fragment getItem(int arg0) {
return fragmentsList.get(arg0);
}
}; vpSlideView.setAdapter(mAdapter);
vpSlideView.setOffscreenPageLimit(3); //这种缓存的数量
vpSlideView.setCurrentItem(currntPosition); // 默认是第一页
tvAllHotel.setTextColor(getResources().getColor(
R.color.colormina)); vpSlideView.setOnPageChangeListener(new OnPageChangeListener() { @Override
public void onPageSelected(int position) {
TranslateAnimation ta = new TranslateAnimation(currntPosition
* getScreenWidth() / 3,
position * getScreenWidth() / 3, 0, 0);
ta.setDuration(200);
ta.setFillAfter(true);
ivSlideLine.startAnimation(ta); //加上滚动时候的动画
currntPosition = position;
tvAllHotel.setTextColor(getResources().getColor(
R.color.search_result_title1));
tvFastChain.setTextColor(getResources().getColor(
R.color.search_result_title1));
tv_fast_finsh.setTextColor(getResources().getColor(
R.color.search_result_title1));
yiyuyue.setTextColor(getResources().getColor(
R.color.search_result_title1));
switch (position) {
case 0:
llAboveLable.setVisibility(View.VISIBLE);
tvAllHotel.setTextColor(getResources().getColor(
R.color.colormina)); break;
case 1:
llAboveLable.setVisibility(View.VISIBLE);
tvFastChain.setTextColor(getResources().getColor(
R.color.colormina));
break;
case 2:
llAboveLable.setVisibility(View.VISIBLE);
tv_fast_finsh.setTextColor(getResources().getColor(
R.color.colormina));
break;
case 3:
llAboveLable.setVisibility(View.VISIBLE);
yiyuyue.setTextColor(getResources().getColor(
R.color.colormina));
break;
default:
break;
}
} @Override
public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override
public void onPageScrollStateChanged(int arg0) { }
});
}
@Override
public void onClick(View v) { }
}
布局文件 :
order_layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <!-- <include layout="@layout/title" /> --> <LinearLayout
android:id="@+id/ll_above_lable"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffffff"
android:orientation="vertical" > <LinearLayout
android:id="@+id/title_lin"
android:layout_width="match_parent"
android:layout_height="55dp"
android:layout_gravity="center_horizontal"
android:orientation="horizontal"
android:paddingBottom="5dp"
android:paddingTop="5dp" > <TextView
android:id="@+id/tv_all_hotel"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="可抢单"
android:textSize="16.5sp" /> <TextView
android:id="@+id/tv_fast_chain"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="配送中"
android:textSize="16.5sp" /> <TextView
android:id="@+id/tv_fast_finsh"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="已完成"
android:textSize="16.5sp" /> <TextView
android:id="@+id/yiyuyue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="已预约"
android:textSize="16.5sp"
android:visibility="gone" />
</LinearLayout> <ImageView
android:id="@+id/iv_slide_line"
android:layout_width="70dp"
android:layout_height="1dp"
android:background="#ff5b3b"
android:scaleType="matrix" /> <View
android:layout_width="match_parent"
android:layout_height="1px"
android:alpha="0.5"
android:background="#bababa" />
</LinearLayout> <android.support.v4.view.ViewPager
android:id="@+id/vp_slide_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</android.support.v4.view.ViewPager> </LinearLayout>
VIewPage+Fragment的更多相关文章
- Android典型界面设计——ViewPage+Fragment实现区域顶部tab滑动切换
一.问题描写叙述 本系列将结合案例应用,陆续向大家介绍一些Android典型界面的设计,首先说说tab导航,导航分为一层和两层(底部区块+区域内头部导航).主要实现方案有RadioGroup+View ...
- Android Studio精彩案例(三)《模仿微信ViewPage+Fragment实现方式二》
转载本专栏文章,请注明出处,尊重原创 .文章博客地址:道龙的博客 写在前面的话:此专栏是博主在工作之余所写,每一篇文章尽可能写的思路清晰一些,属于博主的"精华"部分,不同于以往专栏 ...
- Android之取消ViewPage+Fragment的预加载
用过ViewPage+Fragment组合的童鞋自然知道这个问题,没有遇到的同学祝愿你们永远不会遇到,呵呵.直接上关键代码 注释:setUserVisibleHint每次fragment显示与隐藏都会 ...
- ViewPage+Fragment(仿微信切换带通知)
第一步 : 布局文件 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <Li ...
- ViewPage + Fragment 防止Fragment 重复加载问题
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanc ...
- Android Studio精彩案例(二)《仿微信动态点击底部tab切换Fragment》
转载本专栏文章,请注明出处,尊重原创 .文章博客地址:道龙的博客 现在很多的App要么顶部带有tab,要么就底部带有tab.用户通过点击tab从而切换不同的页面(大部分情况时去切换fragment). ...
- Fragment 生命周期 事务 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- android 资讯阅读器
最近找申请到了一个不错的接口 , 非常适合拿来写一个资讯类的app. 现在着手写,随写随更.也算是抛砖引玉.烂尾请勿喷.╭(╯^╰)╮ android 资讯阅读器 第一阶段目标样式(滑动切换标签 , ...
- android 图片浏览器 demo
先上效果图,本demo 会逐步完好 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTU2NTczMDE2NjEz/font/5a6L5L2T/fontsi ...
随机推荐
- c++学习笔记(网上资料)
C++笔记 2007-3-22 1. 程序 —— 可执行文件,人发送给计算机的一组指令. 硬件指令是二进制, ...
- Java InetAddress.getByAddress()的使用
import java.net.*; public class NetDemo { public static void main(String[] args) throws Exception{ S ...
- [原创]java WEB学习笔记33:Session 案例 之 购物车
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- 【Java】-BigInteger大数类的使用【超强Java大数模板 总结】
Scanner cin = new Scanner(new BufferedInputStream(System.in)); 这样定义Scanner类的对象读入数据可能会快一些! 参考这个博客继续补充 ...
- Oracle创建函数
--创建函数语法 create [or replace] function [schema.]function_name (函数参数列表) --参数有IN.OUT.IN OUT三种类型:IN代表需要输 ...
- linux 磁盘管理与文件系统
一.磁盘分区的意义 磁盘分区就是为了将磁盘分成不同的逻辑区域,每个分区可以有不同的文件系统 二. 磁盘分区是按照磁盘的柱面进行分区的,由于盘片在转动时的角速度都是一样的,所以磁头在最外层的磁道上读取信 ...
- jquery带下拉菜单和焦点图
jQuery,下拉菜单,二级菜单,索引按钮,焦点图代码,jquery带下拉菜单和焦点图是一款顶部通栏带二级下拉菜单和banner导航菜单代码. JQuery特效代码来源:http://www.huiy ...
- 解析XML(3)
SAXReader reader = new SAXReader(); Document doc = reader.read(new FileInputStream("emplist.xml ...
- 将double型小数点后面多余的零去掉
/** 函数功能:将数值小数点后面多余的零清空.* 参数描述:* [in] aSource - 输入的源数值:* [out] aDestination - 输出截取后的数值* ...
- Python基础-读取excel
import xlrdbook = xlrd.open_workbook('lanxia.xls')sheet = book.sheet_by_name('sheet1')rows = sheet.n ...