现在的位置: 首页 > 移动开发 > 正文

android 隐式抽屉组件(SlidingDrawer)

2019年07月20日 移动开发 ⁄ 共 3288字 ⁄ 字号 评论关闭

 

 

 

SlidingDrawer是一种抽屉型的组件,当用户选中抽屉之后,会得到一些可以使用的“程序集”,这样当一个界面要摆放多个组件的时候,使用此组件就可以很好的解决布局空间紧张的问题。

 

 

在main.xml中

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

    xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" >

 

    <SlidingDrawer

        android:id="@+id/slidingdrawer"

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        android:orientation="horizontal"

        android:handle="@+id/handle"

        android:content="@+id/content">

        <ImageView

            android:id="@+id/handle"

            android:src="@drawable/ico_left"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"/>

        <LinearLayout

         xmlns:android="http://schemas.android.com/apk/res/android"

         android:id="@+id/content"

         android:layout_width="fill_parent"

         android:layout_height="fill_parent"

         android:gravity="center_horizontal">

     </LinearLayout>

    </SlidingDrawer>

 

</LinearLayout>

 

 

 

 

在MySlidingDrawerDemo.java程序中

package com.li.slidingdrawer;

 

import android.app.Activity;

import android.os.Bundle;

import android.widget.ArrayAdapter;

import android.widget.ImageView;

import android.widget.LinearLayout;

import android.widget.ListView;

import android.widget.SlidingDrawer;

import android.widget.SlidingDrawer.OnDrawerCloseListener;

import android.widget.SlidingDrawer.OnDrawerOpenListener;

import android.widget.SlidingDrawer.OnDrawerScrollListener;

import android.widget.Toast;

 

public class MySlidingDrawerDemo extends Activity {

  private String data[] = new String[]{

       "北海银滩","北海冠头岭","北海涠洲岛","北海南珠宫"};

  private ListView listview = null;

  private SlidingDrawer slidingDrawer = null;

  private ImageView handle = null;

 

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        super.setContentView(R.layout.main);

        LinearLayout layout = (LinearLayout)super

           .findViewById(R.id.content);  //向里面保存ListView

        this.listview = new ListView(this);

        this.listview.setAdapter(new ArrayAdapter<String>(this,

          android.R.layout.simple_expandable_list_item_1,this.data));

        layout.addView(this.listview);

        this.slidingDrawer = (SlidingDrawer)super.findViewById(R.id.slidingdrawer);

        this.handle = (ImageView)super.findViewById(R.id.handle);

        this.slidingDrawer.setOnDrawerOpenListener(new onDrawerOpenListenerImpl());

        this.slidingDrawer.setOnDrawerCloseListener(new OnDrawerCloseListenerImpl());

        this.slidingDrawer.setOnDrawerScrollListener(new OnDrawerScrollListenerImpl());

    }

    private class onDrawerOpenListenerImpl implements OnDrawerOpenListener{

     public void onDrawerOpened() {

       MySlidingDrawerDemo.this.handle.setImageResource(R.drawable.ico_right);

      

     }

    }

    private class OnDrawerCloseListenerImpl implements OnDrawerCloseListener{

     public void onDrawerClosed() {

       MySlidingDrawerDemo.this.handle.setImageResource(R.drawable.ico_left);

     }

    }

    private class OnDrawerScrollListenerImpl implements OnDrawerScrollListener{

     public void onScrollEnded() {

       Toast.makeText(MySlidingDrawerDemo.this, "窗口拖动结束",Toast.LENGTH_LONG).show();

     }

     public void onScrollStarted() {

       Toast.makeText(MySlidingDrawerDemo.this, "拖动窗口", Toast.LENGTH_LONG).show();

     }

    }

}

 

 

抱歉!评论已关闭.