Android Fragment 监听返回键
直接给代码*-*
Fragment:
public boolean onKeyDown(int keyCode, KeyEvent event){if ((keyCode == KeyEvent.KEYCODE_BACK)){//执行操作((MainActivity) Objects.requireNonNull(getActivity())).viewPager.setCurrentItem(3); }return true;}
MainActivity:
@BindView(R.id.viewPager)public ViewPager viewPager;Fragment currentFragment;
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener(){@Overridepublic void onPageScrolled(int position, float positionOffset, int positionOffsetPixels){}@Overridepublic void onPageSelected(int position){FragmentManager fragmentManager = MainActivity.this.getSupportFragmentManager();List<Fragment> fragments = fragmentManager.getFragments();currentFragment=fragments.get(position);……}@Overridepublic void onPageScrollStateChanged(int state){}});setupViewPager(viewPager);
private void setupViewPager(ViewPager viewPager){adapter = new ViewFragmentPagerAdapter(getSupportFragmentManager());adapter.addFragment(MainFragment.newInstance(getResources().getString(R.string.app_title)));adapter.addFragment(new Fragment());……viewPager.setAdapter(adapter);viewPager.setOffscreenPageLimit(5);}
// 用来计算返回键的点击间隔时间private long exitTime = 0;@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event){if(currentFragment!=null&¤tFragment instanceof AboutApp){((AboutApp)currentFragment).onKeyDown(keyCode, event);return true;} else if (isTaskRoot()){if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){if ((System.currentTimeMillis() - exitTime) > 2000){Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();exitTime = System.currentTimeMillis();}else{finish();}return true;}}return super.onKeyDown(keyCode, event);}
Android Fragment 监听返回键相关推荐
- android重写返回按钮点击事件,Android Fragment监听返回键
场景:在项目中做联系人界面时,需要按名字和按部门显示联系人,此处使用2个fragment切换显示,按部门显示需要体现部门层级关系,需要实现点击返回上级部门.因为Fragment并不能像在Actvity ...
- Android 如何监听返回键,弹出一个退出对话框
Android 如何监听返回键点击事件,并创建一个退出对话框, 防止自己写的应用程序不小心点击退出键而直接退出.自己记录下这个简单的demo,备用. 注:如下代码当时是从网上copy过来的,现在忘了它 ...
- android设置返回按钮无效,Android onKeyDown监听返回键无效的解决办法
Android onKeyDown监听返回键无效的解决办法 当我们的Activity继承了TabActivity,在该类中重写onKeyDown是监听不到返回键的, 具体解决方法如下: 重写dispa ...
- Android下监听返回键、home键、任务键
1.监听返回键 @Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYC ...
- Fragment监听返回键
Activity 比较容易监听物理键返回事件(onBackPressed):Fragment却不能 假设一个FragmentActivity包含3个Fragment,用户一般期望在返回时,逐层返回到F ...
- 优雅的让Fragment监听返回键
转载请注明出处:http://write.blog.csdn.net/postedit/40507387 Activity可以很容易的得到物理返回键的监听事件,而Fragment却不能.假设Fragm ...
- Android onKeyDown监听返回键无效
当我们的Activity继承了TabActivity,在该类中重写onKeyDown是监听不到返回键的, 具体解决方法如下: 重写dispatchKeyEvent /*** 退出*/@Override ...
- 在Android中实现监听 返回键,主键,菜单键
一.监听 返回键 onKeyDown方法和onBackPressed方法 onKeyDown: 是当某个按键被按下是触发.所以也有人在点击返回键的时候去执行该方法来做判断.(该方法只是android ...
- Android监听返回键、Home键+再按一次返回键退出应用
Android监听返回键需重写onKeyDown()方法 Home键keyCode==KeyEvent.KEYCODE_HOME [java] view plaincopy @Override pub ...
最新文章
- java.lang.NoSuchMethodError: No virtual method placeholder(I)Lcom/bumptech/
- python访问数据库如何解决高并发_怎样解决数据库高并发的问题
- 计算机网络技术与应用教程期末考试,2011大学计算机网络技术与应用教程客观题期末复习(含判断题,属于公共课程,使用)...
- 【Flask】在g对象中存放List,实现在捕获异常后继续执行for循环
- ALIN10129-自查方案
- android模拟器游戏按键映射,刺激战场模拟器按键映射对比 逍遥安卓模拟器智能按键最好...
- 转iOS 多线程 RunLoop 机制 (三)
- Tuxera NTFS对磁盘进行不同格式转换
- 串口波形显示软件SerialChart的使用
- 如何设计出令人惊叹的关卡:来自策划、美术与程序的标准
- java linux 时间戳转时间_SpringMVC全局参数转换——linux时间戳转换LocalDateTime
- 国产crm系统哪家公司做的最好?
- 亚马逊SP-API市场端点接口文档整理
- win10系统版本更新旧版本文件清理:如何安全删除win10中的Windows.old文件夹
- 时差,不同国家之间的大概时差
- eclipse安装red5插件,创建red5项目
- CentOS的下载和安装
- Vuex基本使用的总结
- Simulink建模:一阶滤波模型
- 985 博士真的会舍弃华为年薪接近 100 万 offer,去选择年薪 20 万的公务员吗?
热门文章
- .NET 6 攻略大全(二)
- 暴库也不怕!EF Core加密存储数据
- Windows 11 快速体验:开始菜单居中,全系圆角设计!
- NET问答: String 和 string 到底有什么区别?
- .NET 云原生架构师训练营(模块二 基础巩固 安全)--学习笔记
- .NET Core 下使用 Kafka
- .NET和.NET Core Web APi FormData多文件上传
- kubernetes+Azure DevOps实现.Net Core项目的自动化部署均衡负载
- .NET Core接入ElasticSearch 7.5
- 告别2019,写给2020:干好技术,要把握好时光里的每一步