`
zhangfy068
  • 浏览: 148393 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

侧边栏效果

 
阅读更多



 

 使用横向滚动栏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="&lt;- 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>

 

  • 大小: 23.5 KB
  • 大小: 16.7 KB
分享到:
评论

相关推荐

    android手势拖动实现侧边栏效果

    总结,实现“android手势拖动实现侧边栏效果”需要理解Android手势识别机制,合理设计布局,以及熟练运用动画系统。通过以上步骤,我们可以创建一个类似TestSideShowApp的应用,为用户提供直观且流畅的侧边栏滑动...

    实现IOS动画侧边栏效果框架

    本框架“实现IOS动画侧边栏效果框架”旨在为开发者提供一个类似QQ和微信的侧边栏功能,同时增加了吸引用户的动画效果。下面我们将深入探讨这个框架的核心特点、实现原理以及如何在项目中进行集成。 首先,该框架的...

    类似与facebook的侧边栏效果

    在IT行业中,构建类似Facebook的侧边栏效果是一项常见的需求,尤其在开发社交网络或具有丰富交互功能的网页和应用程序时。Facebook的侧边栏设计是其用户界面的一个标志性特征,它提供了便捷的导航和丰富的功能选项。...

    android侧边栏效果

    本知识点将详细讲解如何在Android中实现侧边栏效果,并结合提供的"TestSideShowApp"实例代码进行解析。 首先,侧边栏的实现主要依赖于手势检测和布局动画。Android SDK提供了`SlidingDrawer`组件,但现在已经不推荐...

    Axure 侧边栏效果源文件

    侧边栏效果在现代网页和应用程序设计中是非常常见的元素,通常用于展示导航菜单、设置选项或者附加信息。本资源"Axure 侧边栏效果源文件"提供了一个用Axure实现的侧边栏展开效果的实例,旨在帮助设计师们理解和学习...

    一个极度简单的类似侧边栏效果的Demo

    在这个"一个极度简单的类似侧边栏效果的Demo"中,开发者分享了一个针对新手友好的简单实现方法。 首先,我们需要理解这个Demo的核心技术点。在iOS中,侧边栏效果可以通过多种方式实现,如使用手势识别、...

    DrawLayout侧边栏效果

    本篇文章将深入探讨如何利用DrawLayout来创建一个具有侧边栏效果的应用。 首先,DrawLayout是一种自定义布局,它可以让你在界面上添加可拖动的视图,比如一个从屏幕侧边滑出的菜单。在Android中,实现这种效果通常...

    Jquery Mobile +侧边栏 效果

    在这个项目中,我们探讨如何在jQuery Mobile中集成侧边栏效果。 首先,jQuery Mobile的侧边栏通常通过滑动或者点击按钮来触发,它可以在页面的左侧或右侧滑入和滑出,提供一个隐藏的导航菜单。实现这个效果的关键...

    qq侧边栏效果

    QQ侧边栏效果是设计和开发中常见的交互元素,尤其在移动端应用中广泛使用,它为用户提供了一种高效、直观的导航方式。QQ5.0版本中的侧边栏设计引入了丰富的动画效果,提升了用户体验。在本文中,我们将深入探讨如何...

    qq侧边栏效果 sliding效果大全

    QQ侧边栏效果,也被称为滑动效果(sliding effect),是用户界面设计中的一个重要元素,常见于各类应用和网站,尤其是移动应用中。这种效果通常用于导航菜单、抽屉式面板或者工具栏,能够提供一种优雅且直观的交互...

    安卓动画效果相关-Android中的material-navigation-drawer5.0侧边栏效果.rar

    这个压缩包"安卓动画效果相关-Android中的material-navigation-drawer5.0侧边栏效果.rar"显然包含了关于如何在Android 5.0及以上版本实现Material Design风格侧边栏的示例代码和资源。 侧边栏通常包含应用的主要...

    6种css3和js显示/隐藏侧边栏效果

    在这个名为“6种css3和js显示/隐藏侧边栏效果”的资源中,我们可以深入学习如何利用CSS3和JavaScript来创建交互式的侧边栏导航,这些侧边栏可以从页面的上、下、左、右四个方向进行隐藏和显示,为用户带来更加流畅和...

    swift-SideNavigation 全屏适配---采Swift开发史上最简洁的iOS侧边栏效果

    "swift-SideNavigation 全屏适配---采Swift开发史上最简洁的iOS侧边栏效果"这个项目就是专注于创建一个高度可定制、全屏适配的侧边栏解决方案。 Swift开发中的SideNavigation通常涉及到UIKit框架中的关键组件,如...

    完美使用fragment+SlidingMenu做出的侧边栏效果

    本篇文章将详细介绍如何利用`fragment`和`SlidingMenu`实现一个完美的侧边栏效果。 首先,我们需要理解`Fragment`的概念。`Fragment`是Android SDK中的一个组件,它代表了UI的一部分,可以在多个活动中重复使用。在...

    Android IOS风格侧边栏效果

    Android IOS风格侧边栏效果,ReisdeMenu 创意灵感来自于Dribbble(Dribbble是一个面向创作家、艺术工作者、设计师等创意类作品的人群,提供作品在线服务,供网友在线查看已经完成的作品,或者正在创作的作品.). ...

    Android侧边栏效果

    Material Design提供了关于如何实现侧边栏的详细指导,包括动画、过渡效果和触摸反馈。 2. **NavigationView组件**: Android的NavigationView是实现侧边栏的主要组件。它可以在布局中作为独立的视图,通常与`...

    基于Java实现APP侧边栏效果【100012099】

    总之,本项目"基于Java实现APP侧边栏效果"是一个很好的实践案例,它涵盖了Android开发中的多个核心知识点,包括自定义视图组件的创建、数据适配、触摸事件处理、动画效果实现等。对于希望提升Android开发技能的...

    Android代码-一个炫酷的侧边栏效果

    一次手势完成滑出侧边栏与选择菜单。欢迎下载 demo 体验。 效果 使用方法 添加依赖 compile 'com.github.mzule.fantasyslide:library:1.0.5' 调用 调用方法基本与 DrawerLayout 一致. 本项目支持左右 (start left ...

    【JavaScript源代码】JS实现页面侧边栏效果探究.docx

    JavaScript 实现页面侧边栏效果探究 在网页设计中,创建动态交互的用户体验是一个重要的目标。本文主要探讨如何使用JavaScript来实现一种常见的效果——点击头像后,页面侧边栏从左侧或右侧滑出,展示用户信息。...

Global site tag (gtag.js) - Google Analytics