Fragment:判断是否显示当前Fragment viewpager ;Fragment监听按键点击事件;显示隐藏事件
来源:互联网 发布:怎么在手机上装修淘宝 编辑:程序博客网 时间:2024/06/05 23:03
public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser) { //相当于Fragment的onResume } else { //相当于Fragment的onPause } }
直接在Fragment中重写上述的方法,判断当前Fragment是否可见;(Fragment+Viewpager使用的时候)
====================================================================================================
当判断Fragment 中的 hide 和show 方法的时候回调结果是:
@Overridepublic void onHiddenChanged(boolean hidden) {// TODO Auto-generated method stubsuper.onHiddenChanged(hidden);}
====================================================================================================
当判断Fragment 中的 获取按返回键的是偶,可以使用接口回调,将按键时间传递到Fragment中,然后将是否拦截此事件的boolean返回过去:
在Activity中:manuMap 是保存了对应的Fragment的实例@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {switch (mTabPosition) {case EMAIL:// 拦截Fragment 点击时间EmailFragment ef = (EmailFragment) manuMap.get(CommonContacts.EMAIL_FRAGMENT_KEY);if (ef != null) {boolean flag = ef.onKeyDown(keyCode, event);if (!flag) {return super.onKeyDown(keyCode, event);} else {return true;}}break;}return super.onKeyDown(keyCode, event);}@Overridepublic void onBackPressed() {if (isAddView) {removeView();return;}if (!mBackKeyPressed) {Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();mBackKeyPressed = true;new Timer().schedule(new TimerTask() {// 延时两秒,如果超出则取消取消上一次的记录@Overridepublic void run() {mBackKeyPressed = false;}}, 2000);} else {// 退出程序this.finish();}}
在Fragment中:
public boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == event.KEYCODE_BACK) {MyLog.e(TAG, "KEYCODE_BACK = " + keyCode + "===" + emailHeadMenu_EmailSelect.getVisibility());if (emailHeadMenu_EmailSelect.getVisibility() == View.VISIBLE) {headSelectBack();return true; // 已处理,事件分发机制拦截;true 表示拦截,吃掉当前事件。}}return false;}
0 0
- Fragment:判断是否显示当前Fragment viewpager ;Fragment监听按键点击事件;显示隐藏事件
- Fragment:判断是否显示当前Fragment
- Fragment 判断当前的fragment是否显示
- 判断fragment是否显示
- 判断当前ViewPager中Fragment是否可见
- 正确判断当前的Fragment是显示还是隐藏
- ViewPager获取当前显示的fragment
- Fragment中监听事件
- Fragment中的监听事件
- Fragment 事件监听
- Fragment监听touch事件
- Fragment点击事件传值+Acyivity里接受+Banner显示
- Fragment中监听自身是否显示状态
- Fragment隐藏、显示、替换
- Fragment隐藏与显示
- Fragment隐藏与显示
- fragment的显示 隐藏
- fragment 显示隐藏
- 发布java项目或者web项目修改工程名字的问题
- jmeter学习笔记(二)-接口测试
- 史上最全web.xml配置文件元素详解
- 植绿边疆
- Fragment和Activity的交互
- Fragment:判断是否显示当前Fragment viewpager ;Fragment监听按键点击事件;显示隐藏事件
- 关于单点登录、门户、统一权限控制的一些理解
- SQLITE3 使用总结(七)
- SICP 1.6
- [RK3288][Android6.0] 网络服务Netd初始化流程小结
- yyyy-MM-dd'T'HH:mm:ss.S的作用
- 3 Springboot中使用redis,redis自动缓存异常处理
- nginx log打印输出精度问题
- 在安卓中读取并显示网络图片