使用横向滚动栏HorizontalScrollView。利用加载一个透明的View占位置,然后使用scrollView.smoothScrollTo(left, 0);来滚动,监听手势动作。
获取水平滚动栏直接子View
LinearLayout parent=(LinearLayout) getChildAt(0); parent.addView(children[0], 410, 880); parent.addView(children[1], 536, 880);
一、MainActivity布局文件
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_margin="2px" android:background="#00ffffff" android:padding="0px" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <RelativeLayout android:id="@+id/menu" android:layout_width="fill_parent" android:background="@drawable/desktop_list_item" android:layout_height="wrap_content" > <ImageView android:id="@+id/head" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="fitStart" android:src="@drawable/acount_head_photo" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignBottom="@+id/head" android:layout_marginLeft="10dip" android:layout_toRightOf="@+id/head" android:text="沈阳师范大学" android:textColor="@color/white" android:textSize="17dip" /> </RelativeLayout> <ListView android:id="@+id/HomeListView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:cacheColorHint="@android:color/transparent" android:divider="#000" /> </LinearLayout> <grimbo.android.demo.slidingmenu.MyHorizontalScrollView android:id="@+id/myScrollView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_margin="0px" android:background="#00ffffff" android:fadingEdge="none" android:fadingEdgeLength="0px" android:padding="0px" > <LinearLayout android:id="@+id/top" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_margin="0px" android:background="#00ffffff" android:orientation="horizontal" android:padding="0px" > </LinearLayout> </grimbo.android.demo.slidingmenu.MyHorizontalScrollView> </FrameLayout>
二、监听手势
public class MyGestureDetector extends SimpleOnGestureListener { //滑动 @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { try { float touchLength = Math.abs(e1.getY() - e2.getY()); System.out.println("touchLength="+touchLength); if (touchLength > SWIPE_MAX_OFF_PATH) return false; // 从右向左滑动 if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { System.out.println("SSSSSSSSSSSleftS"); int menuWidth = menu.getMeasuredWidth(); menu.setVisibility(View.VISIBLE); int left = menuWidth; scrollView.smoothScrollTo(left, 0); } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { int left = 0; scrollView.smoothScrollTo(left, 0); System.out.println("SSSSSSSSSSSleftS"+left); } } catch (Exception e) { Log.e("detector", "excetpion:" + e.getMessage()); } return false; } } @Override public boolean onTouchEvent(MotionEvent event) { if (gestureDetector.onTouchEvent(event)) return true; else return false; }
三、侧边栏布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/app" android:layout_width="1dp" android:layout_height="1dp" android:orientation="vertical" android:background="#ffffffff" android:padding="2px" android:layout_margin="2px"> <LinearLayout android:id="@+id/tabBar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:id="@+id/BtnSlide" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="0px" android:layout_margin="0px" android:src="@drawable/ic_launcher" /> <TextView android:text="<- Press icon" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> <ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ff00ff00" android:cacheColorHint="#ff00ff00"> </ListView> </LinearLayout>
相关推荐
总结,实现“android手势拖动实现侧边栏效果”需要理解Android手势识别机制,合理设计布局,以及熟练运用动画系统。通过以上步骤,我们可以创建一个类似TestSideShowApp的应用,为用户提供直观且流畅的侧边栏滑动...
本框架“实现IOS动画侧边栏效果框架”旨在为开发者提供一个类似QQ和微信的侧边栏功能,同时增加了吸引用户的动画效果。下面我们将深入探讨这个框架的核心特点、实现原理以及如何在项目中进行集成。 首先,该框架的...
在IT行业中,构建类似Facebook的侧边栏效果是一项常见的需求,尤其在开发社交网络或具有丰富交互功能的网页和应用程序时。Facebook的侧边栏设计是其用户界面的一个标志性特征,它提供了便捷的导航和丰富的功能选项。...
本知识点将详细讲解如何在Android中实现侧边栏效果,并结合提供的"TestSideShowApp"实例代码进行解析。 首先,侧边栏的实现主要依赖于手势检测和布局动画。Android SDK提供了`SlidingDrawer`组件,但现在已经不推荐...
侧边栏效果在现代网页和应用程序设计中是非常常见的元素,通常用于展示导航菜单、设置选项或者附加信息。本资源"Axure 侧边栏效果源文件"提供了一个用Axure实现的侧边栏展开效果的实例,旨在帮助设计师们理解和学习...
在这个"一个极度简单的类似侧边栏效果的Demo"中,开发者分享了一个针对新手友好的简单实现方法。 首先,我们需要理解这个Demo的核心技术点。在iOS中,侧边栏效果可以通过多种方式实现,如使用手势识别、...
本篇文章将深入探讨如何利用DrawLayout来创建一个具有侧边栏效果的应用。 首先,DrawLayout是一种自定义布局,它可以让你在界面上添加可拖动的视图,比如一个从屏幕侧边滑出的菜单。在Android中,实现这种效果通常...
在这个项目中,我们探讨如何在jQuery Mobile中集成侧边栏效果。 首先,jQuery Mobile的侧边栏通常通过滑动或者点击按钮来触发,它可以在页面的左侧或右侧滑入和滑出,提供一个隐藏的导航菜单。实现这个效果的关键...
QQ侧边栏效果是设计和开发中常见的交互元素,尤其在移动端应用中广泛使用,它为用户提供了一种高效、直观的导航方式。QQ5.0版本中的侧边栏设计引入了丰富的动画效果,提升了用户体验。在本文中,我们将深入探讨如何...
QQ侧边栏效果,也被称为滑动效果(sliding effect),是用户界面设计中的一个重要元素,常见于各类应用和网站,尤其是移动应用中。这种效果通常用于导航菜单、抽屉式面板或者工具栏,能够提供一种优雅且直观的交互...
这个压缩包"安卓动画效果相关-Android中的material-navigation-drawer5.0侧边栏效果.rar"显然包含了关于如何在Android 5.0及以上版本实现Material Design风格侧边栏的示例代码和资源。 侧边栏通常包含应用的主要...
在这个名为“6种css3和js显示/隐藏侧边栏效果”的资源中,我们可以深入学习如何利用CSS3和JavaScript来创建交互式的侧边栏导航,这些侧边栏可以从页面的上、下、左、右四个方向进行隐藏和显示,为用户带来更加流畅和...
"swift-SideNavigation 全屏适配---采Swift开发史上最简洁的iOS侧边栏效果"这个项目就是专注于创建一个高度可定制、全屏适配的侧边栏解决方案。 Swift开发中的SideNavigation通常涉及到UIKit框架中的关键组件,如...
本篇文章将详细介绍如何利用`fragment`和`SlidingMenu`实现一个完美的侧边栏效果。 首先,我们需要理解`Fragment`的概念。`Fragment`是Android SDK中的一个组件,它代表了UI的一部分,可以在多个活动中重复使用。在...
Android IOS风格侧边栏效果,ReisdeMenu 创意灵感来自于Dribbble(Dribbble是一个面向创作家、艺术工作者、设计师等创意类作品的人群,提供作品在线服务,供网友在线查看已经完成的作品,或者正在创作的作品.). ...
Material Design提供了关于如何实现侧边栏的详细指导,包括动画、过渡效果和触摸反馈。 2. **NavigationView组件**: Android的NavigationView是实现侧边栏的主要组件。它可以在布局中作为独立的视图,通常与`...
总之,本项目"基于Java实现APP侧边栏效果"是一个很好的实践案例,它涵盖了Android开发中的多个核心知识点,包括自定义视图组件的创建、数据适配、触摸事件处理、动画效果实现等。对于希望提升Android开发技能的...
一次手势完成滑出侧边栏与选择菜单。欢迎下载 demo 体验。 效果 使用方法 添加依赖 compile 'com.github.mzule.fantasyslide:library:1.0.5' 调用 调用方法基本与 DrawerLayout 一致. 本项目支持左右 (start left ...
JavaScript 实现页面侧边栏效果探究 在网页设计中,创建动态交互的用户体验是一个重要的目标。本文主要探讨如何使用JavaScript来实现一种常见的效果——点击头像后,页面侧边栏从左侧或右侧滑出,展示用户信息。...