Android -- 滑式抽屜SlidingDrawer(非原創)

  SlidingDrawer(滑動式抽屜)隱藏屏外的內容,並容許用戶拖拽一個handle以顯示隱藏的內容。SlidingDrawer能夠在垂直或者水平使用。它由兩個子視圖組成:一個是用戶拖拽的handle(柄),另外一個是隨着拖動變化的 content(內容)。SlidingDrawer應看成爲內部佈局的覆蓋來使用,也就是說SlidingDrawer內部應該使用 FrameLayout或RelativeLayout佈局。SlidingDrawer的大小決定了其內容顯示時所佔空間的大小,因此它的尺寸通常定義 爲match_parent。在XML佈局中SlidingDrawer必須指定handle和content的id:java

 

  

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <!--  能夠設置顯示的方向  -->
    <SlidingDrawer
        android:id="@+id/slidingdraw"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:content="@+id/content"
        android:orientation="horizontal"
        android:handle="@+id/handle" >

        <ListView
            android:id="@id/content"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

        <ImageView
            android:id="@id/handle"
            android:layout_width="88dip"
            android:layout_height="44dip"
            android:contentDescription="TODO"
            android:src="@drawable/ic_launcher" />
    </SlidingDrawer>

</LinearLayout>

 

public class MainActivity extends Activity {

	//聲明SlidingDrawer  
	private SlidingDrawer mDrawer;

	private ImageView mImageView;

	private ListView lvNews;

	private String news[] =
	{
	                              "互聯網產品中的情感化設計" , "有效導向社交產品的商業價值" ,
	                              "移動開發者:得90後者得天下" ,
	                              "用戶體驗:從App的加載頁面說開去" ,
	                              "用扁平化的界面設計吸引用戶" , "實體與數字世界的交集" ,
	                              "網絡社區用戶成長的5個思考模式" ,
	                              "十大值得關注的傳統企業電商" ,
	                              "2013年十大熱點技術發展趨勢" ,
	                              "瞭解產品的開發環節:環形設計論" , "客戶忠誠度的四個層次" ,
	                              "在手機背面貼張'紙'就能輕鬆充電" ,
	                              "互聯網公司是怎樣激發你的消費慾望的" ,
	                              "高效工做的信息蒐集及管理術"
	};

	@ Override
	protected void onCreate ( Bundle savedInstanceState ) {

		super.onCreate ( savedInstanceState );
		setContentView ( R.layout.activity_main );

		//得到SlidingDrawer  
		mDrawer = ( SlidingDrawer ) findViewById ( R.id.slidingdraw );
		mImageView = ( ImageView ) findViewById ( R.id.handle );

		//獲取ListView並填充內容  
		lvNews = ( ListView ) findViewById ( R.id.content );
		lvNews.setAdapter ( new ArrayAdapter < String > (
		                              this ,
		                              android.R.layout.simple_list_item_1 ,
		                              news ) );

		//監聽打開抽屜事件  
		mDrawer.setOnDrawerOpenListener ( new SlidingDrawer.OnDrawerOpenListener ( ) {

			@ Override
			public void onDrawerOpened ( ) {

				mImageView.setImageResource ( R.drawable.ic_launcher );
			}
		} );

		//監聽關閉抽屜事件  
		mDrawer.setOnDrawerCloseListener ( new SlidingDrawer.OnDrawerCloseListener ( ) {

			@ Override
			public void onDrawerClosed ( ) {

				mImageView.setImageResource ( R.drawable.ic_launcher );
			}
		} );

	}

}

推薦一篇大神自定義的SlidingDrawer android

 

屬性網絡

  android:allowSingleTap:指示是否能夠經過handle打開或關閉ide

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

  android:content:隱藏的內容動畫

  android:handle:handle(手柄)this

方法spa

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

  close():即時關閉設計

 

  getContent():獲取內容

 

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

 

  isOpened():指示SlidingDrawer是否已所有打開

 

  lock():屏蔽觸摸事件。

 

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

 

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

 

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

相關文章
相關標籤/搜索