采取SlideMenu达到的效果侧边栏:

setContentView是设置主背景的布局

setBehindContentView是设置左边菜单的布局

setSecondaryMenu是设置右边的布局

setShadowWidth是设置阴影的宽度

setBehindWidth是设置有效的拉出宽度

setMode是设置开启左右两边的菜单

採用ViewPagerIndictor实现滑动的导航栏和页面布局

当中採用TabPageIndicator做可滑动导航栏

ViewPager做滑动的布局

首先要设置导航栏的样式

    <style name="HomeUpTheme" parent="android:Theme.Holo.Light.DarkActionBar">

        <item name="vpiTabPageIndicatorStyle">@style/CustomTabPageIndicator</item>

    </style>

    <style name="CustomTabPageIndicator" parent="Widget.TabPageIndicator">
<item name="android:dividerPadding">10dp</item>
<item name="android:paddingLeft">20dp</item>
<item name="android:paddingRight">20dp</item>
<item name="android:paddingTop">10dp</item>
<item name="android:paddingBottom">10dp</item>
<item name="android:textSize">10pt</item>
<item name="android:textAppearance">@style/CustomTabPageIndicator.Text</item>
<item name="android:textColor">#000000</item>
<item name="android:fadingEdge">horizontal</item>
<item name="android:fadingEdgeLength">8dp</item>
<item name="android:background">@drawable/selectitle</item>
<item name="android:gravity">center</item>
</style>

在代码中

ViewPager里面可设置载入

布局适配器PagerAdapter重写instantiateItem方法

碎片适配器FragmentStatePagerAdapter重写Fragment getItem()的方法

最后把两者关联起来

indicatorView.setViewPager(pager);

完整代码:


public class MainAct extends SlidingActivity {

	SlidingMenu slidingMenu;
TabPageIndicator indicatorView;
ViewPager pager; @Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState); setBehindContentView(R.layout.slide_behind);
setContentView(R.layout.slide_main);
slidingMenu = getSlidingMenu();
slidingMenu.setBehindOffset(300);
slidingMenu.setBehindWidth(400);
slidingMenu.setSecondaryMenu(R.layout.slide_second);
// slidingMenu.setTouchModeAbove(SlidingMenu.LEFT_RIGHT);
slidingMenu.setShadowWidth(100);
slidingMenu.setMode(SlidingMenu.LEFT_RIGHT);
indicatorView = (TabPageIndicator) findViewById(R.id.indicator);
pager = (ViewPager) findViewById(R.id.pager); pager.setAdapter(new Myadapter());
pager.setOffscreenPageLimit(8);
indicatorView.setOnTabReselectedListener(new OnTabReselectedListener() { @Override
public void onTabReselected(int position) {
Toast.makeText(getApplicationContext(), position + "", 3000)
.show();
// TODO Auto-generated method stub
pager.setCurrentItem(position);
}
}); pager.setCurrentItem(0);
indicatorView.setViewPager(pager);
indicatorView.setClickable(true); } class Myadapter extends PagerAdapter { @Override
public int getCount() {
// TODO Auto-generated method stub
return 8;
} @Override
public CharSequence getPageTitle(int position) {
// TODO Auto-generated method stub
return "--" + position + "--";
} @Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub
((ViewPager) container).removeViewAt(position); super.destroyItem(container, position, object);
} @Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
} @Override
public Object instantiateItem(ViewGroup container, int position) {
// TODO Auto-generated method stub
ImageView imageView = new ImageView(getApplicationContext());
imageView.setImageBitmap(BitmapFactory.decodeResource(
getResources(), R.drawable.flower));
container.addView(imageView);
return imageView;
// return super.instantiateItem(container, position);
} } }

版权声明:本文博主原创文章。博客,未经同意不得转载。

最新文章

  1. linux发行版基础目录
  2. 关于tp.5.0角色管理导致的创建角色登陆报错问题解决!
  3. 《UML大战需求分析》阅读笔记6
  4. HTML5中的sessionStorage和localStorage
  5. C# HttpWebRequest 绝技 根据URL地址获取网页信息
  6. 内存中OLTP(Hekaton)里的事务日志记录
  7. abap 选择屏幕事件AT SELECTION-SCREEN
  8. Sample MultipleFileWordcount CombineFileInputFormat
  9. PNG图片去除额外透明区域
  10. C#中的预处理器指令详解
  11. ADB操作多台设备
  12. 关于使用cocoaPods,import导入时第三方库头文件没有提示问题的解决办法
  13. MySQL的Grant命令
  14. CSS实现div居中
  15. dotweb——go语言的一个微型web框架(三)路由注册
  16. ecshop循环计数
  17. MyBatis学习(五)resultMap测试
  18. springboot中使用kindeditor富文本编辑器实现博客功能
  19. Angular7.1.4+Typescript3.1框架学习(一)
  20. ASP.NET Core MVC中Controller的Action,默认既支持HttpGet,又支持HttpPost

热门文章

  1. haproxy image跳转 haproxy匹配 匹配到了就停止,不会继续往下匹配
  2. linux之SQL语句简明教程---SUBSTRING
  3. 电子科大POJ &quot;a^b&quot;
  4. OC基础5:继承
  5. caffe源代码分析--data_layer.cpp
  6. C#软件winform程序安装包制作及卸载程序制作
  7. C# MySQL数据库的备份 还原 初始化
  8. 第001篇——C#学习计划开启
  9. 纯CSS绘制三角形
  10. C#6 冒泡 折半查找 二维数组