android抽屉+滑动

最近在项目里面需要做一个类似抽屉的功能,同时抽屉的内容的组件能够实现滑动功能,这里实现这个功能:

首先设计布局代码,代码如下:

[html][/html] view plaincopy

  1. <RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”
  2.     xmlns:tools=”http://schemas.android.com/tools”
  3.     android:layout_width=”match_parent”
  4.     android:layout_height=”match_parent”
  5.     tools:context=”.MainActivity” >
  6.     <SlidingDrawer
  7.         android:id=”@+id/slidingDrawer1″
  8.         android:layout_width=”wrap_content”
  9.         android:layout_height=”80dp”
  10.         android:layout_alignParentBottom=”true”
  11.         android:content=”@+id/content”
  12.         android:handle=”@+id/handle” >
  13.         <Button
  14.             android:id=”@+id/handle”
  15.             android:layout_width=”wrap_content”
  16.             android:layout_height=”20dp”
  17.             android:text=”Handle” />
  18.         <HorizontalScrollView
  19.             android:id=”@+id/content”
  20.             android:layout_width=”wrap_content”
  21.             android:layout_height=”wrap_content”
  22.             android:layout_gravity=”center_vertical”
  23.             android:background=”@android:color/black”
  24.             android:scrollbars=”none” >
  25.             <LinearLayout
  26.                 android:layout_width=”wrap_content”
  27.                 android:layout_height=”50dp”
  28.                 android:layout_gravity=”center_vertical”
  29.                 android:gravity=”center_vertical”
  30.                 android:id=”@+id/content_linear”
  31.                 android:orientation=”horizontal” >
  32.                 <Button
  33.                     android:layout_width=”70dp”
  34.                     android:layout_height=”50dp”
  35.                     android:layout_marginLeft=”10dp”
  36.                     android:id=”@+id/btn1″
  37.                     android:text=”btn1″ >
  38.                 </Button>
  39.                 <Button
  40.                     android:layout_width=”70dp”
  41.                     android:layout_height=”50dp”
  42.                     android:layout_marginLeft=”10dp”
  43.                     android:text=”btn2″ >
  44.                 </Button>
  45.                 <Button
  46.                     android:layout_width=”70dp”
  47.                     android:layout_height=”50dp”
  48.                     android:layout_marginLeft=”10dp”
  49.                     android:text=”btn3″ >
  50.                 </Button>
  51.                 <Button
  52.                     android:layout_width=”70dp”
  53.                     android:layout_height=”50dp”
  54.                     android:layout_marginLeft=”10dp”
  55.                     android:text=”btn4″ >
  56.                 </Button>
  57.                 <Button
  58.                     android:layout_width=”70dp”
  59.                     android:layout_height=”50dp”
  60.                     android:layout_marginLeft=”10dp”
  61.                     android:text=”btn5″ >
  62.                 </Button>
  63.                 <Button
  64.                     android:layout_width=”70dp”
  65.                     android:layout_height=”50dp”
  66.                     android:layout_marginLeft=”10dp”
  67.                     android:text=”btn5″ >
  68.                 </Button>
  69.                 <Button
  70.                     android:layout_width=”70dp”
  71.                     android:layout_height=”50dp”
  72.                     android:layout_marginLeft=”10dp”
  73.                     android:text=”btn5″ >
  74.                 </Button>
  75.                 <Button
  76.                     android:layout_width=”70dp”
  77.                     android:layout_height=”50dp”
  78.                     android:layout_marginLeft=”10dp”
  79.                     android:text=”btn5″ >
  80.                 </Button>
  81.                 <Button
  82.                     android:layout_width=”70dp”
  83.                     android:layout_height=”50dp”
  84.                     android:layout_marginLeft=”10dp”
  85.                     android:text=”btn5″ >
  86.                 </Button>
  87.             </LinearLayout>
  88.         </HorizontalScrollView>
  89.     </SlidingDrawer>
  90. </RelativeLayout>

实现代码如下:

[java][/java] view plaincopy

  1. package com.example.test;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. public class Test extends Activity{
  5.     @Override
  6.     protected void onCreate(Bundle savedInstanceState) {
  7.         super.onCreate(savedInstanceState);
  8.         setContentView(R.layout.activity_main);
  9.     }
  10. }

效果图如下:

 

 

但是这里有一个问题就是滑动事件与按钮的Touch事件冲突,当实现按钮的touch事件的时候,移动组件,松开组件无法捕获其up事件,对于这个问题,在下一章解决

标签