android 简化并实现TabHost,SlideMenu,顶部滑动tab,引导页
来源:互联网 发布:刷微信红包软件 编辑:程序博客网 时间:2024/05/16 19:56
ViewPagerIndicator
ViewPagerIndicator
使用方法 #
package com.shizhefei.indicator.guide;import android.os.Bundle;import android.support.v4.app.FragmentActivity;import android.support.v4.view.ViewPager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.ViewGroup.LayoutParams;import com.shizhefei.indicator.R;import com.shizhefei.view.indicator.Indicator;import com.shizhefei.view.indicator.IndicatorViewPager;import com.shizhefei.view.indicator.IndicatorViewPager.IndicatorPagerAdapter;import com.shizhefei.view.indicator.IndicatorViewPager.IndicatorViewPagerAdapter;public class GuideActivity extends FragmentActivity { private IndicatorViewPager indicatorViewPager; private LayoutInflater inflate; @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); setContentView(R.layout.activity_guide); ViewPager viewPager = (ViewPager) findViewById(R.id.guide_viewPager); Indicator indicator = (Indicator) findViewById(R.id.guide_indicator); // 将viewPager和indicator使用 indicatorViewPager = new IndicatorViewPager(indicator, viewPager); inflate = LayoutInflater.from(getApplicationContext()); // 设置indicatorViewPager的适配器 indicatorViewPager.setAdapter(adapter); } private IndicatorPagerAdapter adapter = new IndicatorViewPagerAdapter() { private int[] images = { R.drawable.p1, R.drawable.p2, R.drawable.p3, R.drawable.p4 }; /** * 获取tab */ @Override public View getViewForTab(int position, View convertView, ViewGroup container) { if (convertView == null) { convertView = inflate.inflate(R.layout.tab_guide, container, false); } return convertView; } /** * 获取每一个界面 */ @Override public View getViewForPage(int position, View convertView, ViewGroup container) { if (convertView == null) { convertView = new View(getApplicationContext()); convertView.setLayoutParams(new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); } convertView.setBackgroundResource(images[position]); return convertView; } /** * 获取界面数量 */ @Override public int getCount() { return images.length; } };}
效果图
有了该类库你可以实现以下布局
主要的类
1.ViewPager
support-v4 里面的viewpager被重新改写了。
support4.jar目前是1069k,因为我把源码也放了进去。
1.在原先的基础上添加了setCanScroll(false)的方法用来禁止滑动。 2.setPrepareNumber(1)的方法用来配合setOffscreenPageLimit(1)进行预加载界面和防止重新创建界面
2.Indicator
顾名思义是指示器的意思。有点像水平方向的listview 可以自定义item。
子类FixedIndicatorView 主要用于固定大小来平均分配tab的情况。 子类ScrollIndicatorView 主要用于多个tab可以进行滑动。
3.indicatorViewPager
用于将ViewPager和Indicator 联合使用。 indicatorViewPager.setAdapter(IndicatorPagerAdapter adapter)
4.IndicatorPagerAdapter
子类IndicatorFragmentPagerAdapter 用于 界面是fragment的形式。 子类IndicatorViewPagerAdapter 用于 界面是View的形式.
indicatorViewPager.setOnIndicatorPageChangeListener(onIndicatorPageChangeListener)设置界面的切换监听。
Indicator 既可以单独使用。也可以通过indicatorViewPager的形式联合viewpager一起使用。
说明
项目 ViewPagerIndicator_Demo 是示例代码。 看了这个例子你会惊奇的发现里面居然都是通过viewpager实现,没有使用tabhost,而所有形式的tab都是用Indicator实现。 项目 ViewPagerIndicator_Library 是类库 项目 SlideMenu_Library 是第三方的slidemenu类库
有什么建议可以发到我的邮箱 794629068@qq.com
- android 简化并实现TabHost,SlideMenu,顶部滑动tab,引导页
- Android实现引导页并滑动跳转到主界面
- 【Android】Tab页的实现,利用tabhost
- Android:TabHost实现Tab切换
- Android:TabHost实现Tab切换
- Android:TabHost实现Tab切换
- Android:TabHost实现Tab切换
- Android-TabHost实现Tab切换
- Android TabLayout、ViewPager实现顶部和底部Tab导航 点击滑动切换Tab页面
- Android提高篇之TabHost结合ViewFlipper实现tab滑动翻页特效(精华版)
- Android提高篇之TabHost结合ViewFlipper实现tab滑动翻页特效
- 实现双向滑动SlideMenu效果
- android 滑动侧边栏 SlideMenu
- Android典型界面设计——ViewPage+Fragment实现区域顶部tab滑动切换
- Android ViewPager和Fragment实现顶部导航界面滑动效果、标签下的tab位置
- Android中应用TabLayout实现顶部Tab小菜单加滑动效果
- Android之新闻客服端顶部导航栏Tab点击和左右滑动实现切换界面
- Android UI之Tab(TabActivity+TabHost实现)
- 用scrollview控件取消滑动
- Android 如何在Eclipse中查看Android API源码以及support包源码
- 删除二叉排序树中的一个节点
- cocos2d性能优化
- django在apache下的部署包括静态文件解析(笔记)
- android 简化并实现TabHost,SlideMenu,顶部滑动tab,引导页
- UVA - 112 Tree Summing
- haskell 函数
- 一年一折腾,今年二折腾
- schema的聚合。
- hdu 5055
- 软考——计算机系统知识
- friend ostream& operator < <
- 【深信服面试题】编写函数:1-1000之中包含2的个数,比如22算两个。