• 从零開始学android<SlidingDrawer 隐式抽屉.三十三.>


    SlidingDrawer是一种抽屉型的组件。当用户选择打开此抽屉之后,会得到一些能够使用的“程序集”。这样当一个界面要摆放多个组件的时候,使用此组件就能够非常好的解决布局空间紧张的问题,SlidingDrawer类的定义例如以下所看到的:
    ava.lang.Object
       android.view.View
         android.view.ViewGroup
           android.widget.SlidingDrawer

    经常使用的方法
    1
    public void open()
    普通
    打开隐藏的抽屉
    2
    public void close()
    普通
    关闭隐藏的抽屉
    3
    public void lock()
    普通
    锁定“程序集”视图
    4
    public void unlock()
    普通
    解除锁定
    5
    public View getContent()
    普通
    得到所设置的“程序集”视图
    6
    public View getHandle()
    普通
    得到所设置的操作钮视图
    7
    public boolean isMoving()
    普通
    是否正在滑动
    8
    public boolean isOpened()
    普通
    是否打开
    9
    public void setOnDrawerOpenListener(
    SlidingDrawer.OnDrawerOpenListener onDrawerOpenListener)
    普通
    打开抽屉组件时触发事件
    10
    public void setOnDrawerCloseListener(
    SlidingDrawer.OnDrawerCloseListener onDrawerCloseListener)
    普通
    关闭抽屉组件时触发事件
    11
    public void setOnDrawerScrollListener(
    SlidingDrawer.OnDrawerScrollListener onDrawerScrollListener)
    普通
    移抽屉组件时触发事件


    XML文件

    <span style="font-size:18px;"><?

    xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:id="@+id/MyLayout"     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:content="@+id/content"         android:handle="@+id/handle"         android:orientation="vertical" >     <ImageView             android:id="@+id/handle"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:src="@drawable/close" />         <LinearLayout             android:id="@+id/content"             android:layout_width="fill_parent"             android:layout_height="wrap_content"             android:orientation="vertical" >                      </LinearLayout>          </SlidingDrawer> </LinearLayout></span>



    JAVA文件

    <span style="font-size:18px;">package com.example.slidingdrawer;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    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 MainActivity extends Activity {
    	private SlidingDrawer slidingDrawer;
    	private ImageView handle;
    	private String data[]={"保存数据","更新状态","个人心情","个人等级","很多其它信息","","more……"};//listview数据
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		LinearLayout layout = (LinearLayout) super.findViewById(R.id.content);
    		ListView listView=new ListView(this);
    		listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,data));//设置adapter
    		layout.addView(listView);
    		this.handle=(ImageView)this.findViewById(R.id.handle);
    		this.slidingDrawer=(SlidingDrawer)this.findViewById(R.id.slidingdrawer);
    		this.slidingDrawer.setOnDrawerCloseListener(new OnDrawerCloseListener() {
    			
    			@Override
    			public void onDrawerClosed() {
    				// TODO Auto-generated method stub
    				Toast.makeText(MainActivity.this, "菜单关闭", 2).show();
    				handle.setImageResource(R.drawable.close);
    			}
    		});
    		this.slidingDrawer.setOnDrawerOpenListener(new OnDrawerOpenListener() {
    			
    			@Override
    			public void onDrawerOpened() {
    				// TODO Auto-generated method stub
    				Toast.makeText(MainActivity.this, "菜单打开", 2).show();
    				handle.setImageResource(R.drawable.open);
    			}
    		});
    		this.slidingDrawer.setOnDrawerScrollListener(new OnDrawerScrollListener() {
    			
    			@Override
    			public void onScrollStarted() {
    				// TODO Auto-generated method stub
    				Toast.makeText(MainActivity.this, "正在拖动", 2).show();
    			}
    			
    			@Override
    			public void onScrollEnded() {
    				// TODO Auto-generated method stub
    				
    			}
    		});
    	}
    
    	
    
    }
    </span>




    我们使用SlidingDrawer和GridView结合来做一个隐式菜单的效果

    将用到的图片导入

    XML文件

    <span style="font-size:18px;"><?

    xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/MyLayout" 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:content="@+id/content" android:handle="@+id/handle" android:orientation="vertical" > <ImageView android:id="@+id/handle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/close" /> <LinearLayout android:id="@+id/content" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <GridView android:id="@+id/gridView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:numColumns="4"//每行数据数 android:stretchMode="columnWidth" android:verticalSpacing="70dp" >//行间距 </GridView> </LinearLayout> </SlidingDrawer> </LinearLayout></span>



    JAVA文件



    打开后




    隐式抽屉组件在开发中较经常使用到。也将为简单。希望大家好好学习掌握

    下节预报
    PopupWindow弹出窗体
  • 相关阅读:
    SQL Server 存储过程/触发器中调用COM组件的方法
    写入Stream
    Python 3.2 中adodbapi的问题
    Python中将系统输出显示在PyQt中
    动态创建 Lambda 表达式
    Entity Framework框架Code First Fluent API
    扩展IQueryable实现属性名称排序
    在Entity Framework中使用事务
    ASP.NET MVC:通过FileResult向浏览器发送文件
    ASP.NET MVC: 使用自定义 ModelBinder 过滤敏感信息
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/7018919.html
Copyright © 2020-2023  润新知