Android中TabHost应用-支持点击和手势滑动
2014-10-15 20:45
302 查看
这几天参与的项目中用到了TabHost,开始的时候已经实现了其点击事件处理的效果,今天突然想到现在一些软件都支持滑动就在其上面加上滑动切换Activity的效果。
主要的方法就是点击处理时间,和滑动处理事件以及二者的同步。
点击处理时间代码如下:
滑动处理代码如下:
这样处理既可以通过按键切换Activity又可以通过滑动切换。
方法比较过时,但效果还可以!
主要的方法就是点击处理时间,和滑动处理事件以及二者的同步。
点击处理时间代码如下:
mTabHost = this.getTabHost(); mTabHost.addTab(mTabHost .newTabSpec("TAG1") .setIndicator("TAG1") .setContent( new Intent(IPCViewActivity.this, IPCListActivity.class))); mTabHost.addTab(mTabHost .newTabSpec("TAG2") .setIndicator("TAG2") .setContent( new Intent(IPCViewActivity.this, IPCOtherActivity.class))); mTabHost.addTab(mTabHost .newTabSpec("TAG3") .setIndicator("TAG3") .setContent( new Intent(IPCViewActivity.this, IPCSettingActivity.class))); friend = (RadioButton) findViewById(R.id.tab_friend); search = (RadioButton) findViewById(R.id.tab_search); setting = (RadioButton) findViewById(R.id.tab_setting); // 设置当前显示哪一个标签 mTabHost.setCurrentTab(0); friend.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub
mTabHost.setCurrentTabByTag("TAG1"); currentView = 0;
} }); search.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub
mTabHost.setCurrentTabByTag("TAG2"); currentView = 1;
} }); setting.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mTabHost.setCurrentTabByTag("TAG3"); currentView = 2;
} });
滑动处理代码如下:
gestureDetector = new GestureDetector(new MyGestureDetector()); listener = new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub return gestureDetector.onTouchEvent(event); } };
class MyGestureDetector extends SimpleOnGestureListener { @Override /** * @param e1 第一个ACTION_DOWN MotionEvent并且只有一个 * @param e2 最后一个ACTION_MOVE MotionEvent * @param velocityX X轴上的移动速度,像素/秒 * @param velocityY Y轴上的移动速度,像素/秒 */ public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { // TODO Auto-generated method stub try { // 从右向左滑动 if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { if (currentView == maxTabIndex) { //currentView = 0; } else { currentView++; } mTabHost.setCurrentTab(currentView);
// 从左向右滑动 } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { if (currentView == 0) { //currentView = maxTabIndex; } else { currentView--; } mTabHost.setCurrentTab(currentView);
} } catch (Exception e) { // TODO: handle exception } return false; } }
这样处理既可以通过按键切换Activity又可以通过滑动切换。
方法比较过时,但效果还可以!
相关文章推荐
- Android中使用GridView分页显示系统所安装的应用,支持拖动与手势滑动
- Android中使用GridView分页显示系统所安装的应用,支持拖动与手势滑动
- Google更新Android平台键盘应用 支持手势滑动输入
- Android中使用GridView分页显示系统所安装的应用,支持拖动与手势滑动
- Android相册支持查看本地相册,点击放大图片,滑动切换图片,手势放大缩小
- Android中使用GridView分页显示系统所安装的应用,支持拖动与手势滑动
- Android中使用GridView分页显示系统所安装的应用,支持拖动与手势滑动
- Android中使用GridView分页显示系统所安装的应用,支持拖动与手势滑动
- Android中使用GridView分页显示系统所安装的应用,支持拖动与手势滑动
- Android之ViewPager+Fragment实现页面点击切换和手势滑动
- Android 高仿微信朋友圈动态, 支持双击手势放大并滑动查看图片。
- Android之ViewPager+Fragment实现页面点击切换和手势滑动
- Android开发之ViewFlipper应用(二)之手势滑动相册
- Android之ViewPager+Fragment实现页面点击切换和手势滑动
- Android滑动和点击手势冲突解决办法
- Android 高仿微信朋友圈动态, 支持双击手势放大并滑动查看图片。
- 【商城开发六】图片点击查看大图,支持手势,viewpager滑动
- Android手势滑动识别器应用
- Android 高仿微信朋友圈动态支持双击手势放大并滑动查看图片效果
- android--解--它们的定义tabhost(动态添加的选项+用自己的主动性横向滑动标签+手势切换标签页和内容特征)