Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android控件之SlidingDrawer(滑動式抽屜)詳解與實例

Android控件之SlidingDrawer(滑動式抽屜)詳解與實例

編輯:Android開發實例

 SlidingDrawer效果想必大家也見到過,它就是1.5模擬器上進入應用程序列表的效果。下面是截圖

 

 

 一、簡介

   SlidingDrawer隱藏屏外的內容,並允許用戶通過handle以顯示隱藏內容。它可以垂直或水平滑動,它有倆個View組成,其一是可以拖動的handle,其二是隱藏內容的View.它裡面的控件必須設置布局,在布局文件中必須指定handle和content.

例如下面

  1. <SlidingDrawer android:layout_width="fill_parent" 
  2.   android:layout_height="fill_parent" android:handle="@+id/handle" 
  3.   android:content="@+id/content" android:orientation="vertical" 
  4.   android:id="@+id/slidingdrawer"> 
  5.  
  6.   <ImageButton android:id="@id/handle" android:layout_width="50dip" 
  7.    android:layout_height="44dip" android:src="@drawable/up" /> 
  8.  
  9.   <LinearLayout android:id="@id/content" 
  10.    android:layout_width="fill_parent" android:layout_height="fill_parent"   
  11.    android:background="#ffffff"> 
  12.  
  13.    <TextView android:text="這是一個滑動式抽屜的示例"   
  14.    android:id="@+id/tv" 
  15.    android:textSize="18px" 
  16.    android:textColor="#000000" 
  17.    android:gravity="center_vertical|center_horizontal" 
  18.    android:layout_width="match_parent"   
  19.    android:textStyle="bold" 
  20.    android:layout_height="match_parent"></TextView> 
  21.   </LinearLayout> 
  22.  
  23.  </SlidingDrawer> 
  24.  

 

二、重要屬性

  android:allowSingleTap:指示是否可以通過handle打開或關閉

  android:animateOnClick:指示是否當使用者按下手柄打開/關閉時是否該有一個動畫。

  android:content:隱藏的內容

  android:handle:handle(手柄)

三、重要方法

  animateClose():關閉時實現動畫。

  close():即時關閉

  getContent():獲取內容

  isMoving():指示SlidingDrawer是否在移動。

  isOpened():指示SlidingDrawer是否已全部打開

  lock():屏蔽觸摸事件。

  setOnDrawerCloseListener(SlidingDrawer.OnDrawerCloseListener onDrawerCloseListener):SlidingDrawer關閉時調用

  unlock():解除屏蔽觸摸事件。

  toggle():切換打開和關閉的抽屜SlidingDrawer。

 

四、完整實例

1.布局文件slidingdrawer.xml

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.  android:layout_width="fill_parent" android:layout_height="fill_parent" 
  4.  android:orientation="vertical" android:background="@drawable/default_bg"> 
  5.  
  6.  <SlidingDrawer android:layout_width="fill_parent" 
  7.   android:layout_height="fill_parent" android:handle="@+id/handle" 
  8.   android:content="@+id/content" android:orientation="vertical" 
  9.   android:id="@+id/slidingdrawer"> 
  10.  
  11.   <ImageButton android:id="@id/handle" android:layout_width="50dip" 
  12.    android:layout_height="44dip" android:src="@drawable/up" /> 
  13.  
  14.   <LinearLayout android:id="@id/content" 
  15.    android:layout_width="fill_parent" android:layout_height="fill_parent"   
  16.    android:background="#ffffff"> 
  17.  
  18.    <TextView android:text="這是一個滑動式抽屜的示例"   
  19.    android:id="@+id/tv" 
  20.    android:textSize="18px" 
  21.    android:textColor="#000000" 
  22.    android:gravity="center_vertical|center_horizontal" 
  23.    android:layout_width="match_parent"   
  24.    android:textStyle="bold" 
  25.    android:layout_height="match_parent"></TextView> 
  26.   </LinearLayout> 
  27.  
  28.  </SlidingDrawer> 
  29. </LinearLayout> 
  30.  

 

2.Java代碼

  1. package com.wjq;  
  2.  
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.widget.ImageButton;  
  6. import android.widget.SlidingDrawer;  
  7. import android.widget.TextView;  
  8.  
  9. public class SlidingDrawerDemo extends Activity {  
  10. private SlidingDrawer mDrawer;  
  11. private ImageButton imbg;  
  12. private Boolean flag=false;  
  13. private TextView tv;  
  14.  /* (non-Javadoc)  
  15.   * @see android.app.Activity#onCreate(android.os.Bundle)  
  16.   */ 
  17.  @Override 
  18.  protected void onCreate(Bundle savedInstanceState) {  
  19.   // TODO Auto-generated method stub  
  20.   super.onCreate(savedInstanceState);  
  21.   setContentView(R.layout.sildingdrawer);  
  22.     
  23.   imbg=(ImageButton)findViewById(R.id.handle);  
  24.   mDrawer=(SlidingDrawer)findViewById(R.id.slidingdrawer);  
  25.   tv=(TextView)findViewById(R.id.tv);  
  26.     
  27.   mDrawer.setOnDrawerOpenListener(new SlidingDrawer.OnDrawerOpenListener()  
  28.   {  
  29.    @Override 
  30.    public void onDrawerOpened() {  
  31.     flag=true;  
  32.     imbg.setImageResource(R.drawable.down);  
  33.    }  
  34.      
  35.   });  
  36.     
  37.   mDrawer.setOnDrawerCloseListener(new SlidingDrawer.OnDrawerCloseListener(){  
  38.  
  39.    @Override 
  40.    public void onDrawerClosed() {  
  41.     flag=false;  
  42.     imbg.setImageResource(R.drawable.up);  
  43.    }  
  44.      
  45.   });  
  46.     
  47.   mDrawer.setOnDrawerScrollListener(new SlidingDrawer.OnDrawerScrollListener(){  
  48.  
  49.    @Override 
  50.    public void onScrollEnded() {  
  51.     tv.setText("結束拖動");  
  52.    }  
  53.  
  54.    @Override 
  55.    public void onScrollStarted() {  
  56.    tv.setText("開始拖動");  
  57.    }  
  58.      
  59.   });  
  60.  
  61.    
  62.  }  
  63.  
  64. }  

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved