侧滑+viewpager 类似掌阅的滑动demo
2019独角兽企业重金招聘Python工程师标准>>>
侧滑+viewpager的效果首先要引用Slidingmenu的项目,然后对主Activity进行相应的修改,具体代码如下:
具体代码如下:
主界面:
/**
* @描述:主界面
* @作者:刘倩
* @时间:2014-11-13 下午4:25:40
*/
public class MainActivity extends SlidingFragmentActivity {
/** 声明主界面的Fragment */
private Fragment mContent;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置为无窗口的形式
requestWindowFeature(Window.FEATURE_NO_TITLE);
initView(savedInstanceState);
}
/**
* 初始化视图
*
* @param savedInstanceState
*/
private void initView(Bundle savedInstanceState) {
setContentView(R.layout.layout_main);
if (findViewById(R.id.set_frame) == null) {
setBehindContentView(R.layout.set_frame);
getSlidingMenu().setSlidingEnabled(true);
getSlidingMenu()
.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
} else {
/* 添加虚拟的视图 */
View v = new View(this);
setBehindContentView(v);
getSlidingMenu().setSlidingEnabled(false);
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);
}
/* 设置覆盖在最上面的视图 */
if (savedInstanceState != null) {
mContent = getSupportFragmentManager().getFragment(
savedInstanceState, "mContent");
}
if (mContent == null) {
mContent = new MainFragment();
}
getSupportFragmentManager().beginTransaction()
.replace(R.id.main_content_frame, mContent).commit();
/* 设置被盖在下面的视图 */
getSupportFragmentManager().beginTransaction()
.replace(R.id.set_frame, new SetFragment()).commit();
/* 自定义SlidingMenu */
SlidingMenu sm = getSlidingMenu();
sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);
sm.setFadeEnabled(false);
sm.setBehindScrollScale(0.25f);
sm.setFadeDegree(0.25f);
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
getSupportFragmentManager().putFragment(outState, "mContent", mContent);
}
}
主要对MainFragment做修改:
/**
* @描述:主界面,主要是书架功能
* @作者:刘倩
* @时间:2014-12-25 下午5:31:10
*/
public class MainFragment extends Fragment {
/** 声明ViewPager */
private ViewPager mPager;
/** 声明存放Fragment的集合 */
private ArrayList<Fragment> fragmentsList;
/** 书架的Fragment */
Fragment storeFragment;
/** 书城的Fragment */
Fragment bookshelfFragment;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return initView(inflater);
}
/**
* 初始化视图
*
* @return
*/
private View initView(LayoutInflater inflater) {
View mView = inflater.inflate(R.layout.layout_main_fragment, null);
InitViewPager(mView);
return mView;
}
private void InitViewPager(View parentView) {
mPager = (ViewPager) parentView.findViewById(R.id.main_vPager);
fragmentsList = new ArrayList<Fragment>();
bookshelfFragment = new BookshelfFragment();
storeFragment = new StoreFragment();
fragmentsList.add(bookshelfFragment);
fragmentsList.add(storeFragment);
mPager.setAdapter(new MyFragmentPagerAdapter(getChildFragmentManager(),
fragmentsList));
mPager.setOnPageChangeListener(new MyOnPageChangeListener());
mPager.setCurrentItem(0);
}
public class MyOnPageChangeListener implements OnPageChangeListener {
@Override
public void onPageScrollStateChanged(int arg0) { }
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) { }
@Override
public void onPageSelected(int position) {
switch (position) {
case 0:
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
break;
default:
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
break;
}
}
}
private SlidingMenu getSlidingMenu() {
return ((MainActivity)getActivity()).getSlidingMenu();
}
}
第三步就是对BookshelfFragment和StoreFragment进行布局了。
具体的下载地址如下:
http://download.csdn.net/detail/u010820846/8314977
转载于:https://my.oschina.net/u/1244156/blog/362400
侧滑+viewpager 类似掌阅的滑动demo相关推荐
- 掌阅群分享技术点收集(app性能优化专攻)
保活 先从老式最基础的开始: 使用startService方式启动一个独立进程的服务,这样系统会在service意外死亡后自动重启. 使用RTC定时闹钟每5分钟检测一下(4.0以上基本无效) 启动li ...
- 仿掌阅实现 TabLayout 切换时的字体和 Indicator 动画
文章目录 前言 分析 实现字体缩放动画 实现 Indicator 的长度变化动画 一.准备工作 二.让 TextView 撑满 TabView 三.实现滑动时 Indicator 的动画效果 写在最后 ...
- 掌阅Android App插件补丁实践(ZeusPlugin)
掌阅Android App插件补丁实践(ZeusPlugin) 遇到问题 65K方法数超限 随着应用不断迭代,业务线的扩展,应用越来越大,那么很不幸,总有一天,当你编译的时候,会遇到一个类似下面的错误 ...
- 讯飞和掌阅死磕亚马逊,彩色电子墨水阅读器是为了干掉kindle吗
文|顾旭光 来源|智能相对论(ID:aixdlun) 从2007年第一款Kindle发布后,电子阅读硬件这个非常聚焦的赛道已经走过了13个年头. "智能相对论"小组中,行走坐卧都带 ...
- 数字阅读市场陷入两强之争 掌阅能不能守住半壁江山?
近日,收购了新丽传媒的阅文集团股价大跌,但市值仍然有468亿港元(人民币411.5亿元).与之相比业务相近的掌阅科技在A股却只有117亿市值,远不在一个量级.其实在数字阅读市场上,两者的数据表面上可以 ...
- TabLayout+ViewPager+Fragmet+RecyclerView结合的小demo
前两天想熟悉一下tablayout,所以就弄了个特别简单的tablayout+viewpager+fragmet+recyclerview结合的小demo.虽然特别简单,但还是遇到了不少问题. tab ...
- Android 仿掌阅 小说阅读器 书籍打开动画
搜了半天 终于找到关键字 掌阅 . ireader 可惜放到项目炸了,,,, 完整代码 // 万能适配器compile 'com.github.CymChad:BaseRecyclerViewAda ...
- 掌阅科技上半年净利增长21%,牵手字节后能与阅文一战吗?
时隔一年,<元龙>第二季在B站如期上线,不少粉丝闻讯而来. 这不是掌阅打造的第一部IP改编作品.8月16日盘后,掌阅科技发布半年报,宣布营收达到10.94亿元,净利润达1.34亿元,均同比 ...
- 源码解析:解析掌阅X2C 框架
前言 掌阅出品了X2C 框架,听说可以加快性能.喜欢研究源码的我,肯定要来看下是怎么回事. 作为一个开发,应该不屑于只会使用开源框架. OK,来尝试下. 项目地址: https://github.co ...
最新文章
- 响应式网页的布局设计
- FusionCharts下载地址汇总及更新介绍
- 浅析网站标题优化该如何进行?
- python监听器_监听器 - python成长中 - 博客园
- Scala集合:ListBuffer的头head和尾tail
- java怎么设置不同事件_activiti 全局流程监听ActivitiEventListener,实现监听不同类型事件,不需要在acitivit中配置任务监听,非常方便...
- react中弹框的显示隐藏
- 房天下数据爬取及简单数据分析
- php table转json,html table表数据转Json格式示例代码分析
- 段选择符和段描述符的关系
- Java I/O系统之Writer
- 深入理解Attention及变种(三)
- 解决方案:Win C++ mingw编译器出现 不支持的16位程序问题
- Windows 7/10下安装Ubuntu 16.04双系统
- 戏人看戏--什么是Web3.0?区块链又是什么?如何写一个web3.0的界面?
- 2014.05.14小项目----漫天彩星
- 网易云音乐歌单详情列表爬虫破解
- 安装busybox步骤
- 时序数据库基本概念学习
- 牛客小白月赛16——D 小阳买水果
热门文章
- 「2020新商业潜力评选」结果隆重揭晓,袋鼠云荣登榜单
- 算法 寻找多数元素
- tp5模板中时间戳转时间
- html encode 在线,HttpUtility.HtmlEncode转义过多?
- flutter Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264) ✗ Android licens
- Shapiro-Wilk (SW) 检验
- c#编程:事件delegate学习笔记-3
- Go(05)map介绍
- StackFlow 之ISO-8859-1乱码问题
- cd---命令cmd打开文件夹