效果例如以下:

【安卓笔记】抽屉式布局----DrawerLayout【安卓笔记】抽屉式布局----DrawerLayout

DrawerLayout来自support.v4包,所以不用考虑兼容性问题。其次,这样的布局类似风靡一时的側滑菜单,可是比側滑菜单轻巧很多。
以下介绍这样的布局的使用方式。
1.在你的项目中导入support.v4包。
2.编辑一个布局,根节点为android.support.v4.widget.DrawerLayout,此节点下仅仅同意有两个子节点,第一个为将来主页面的内容,第二个节点即为"抽屉"内容,一般是一个ListView。比方:

3.编写代码,监听相关事件:
package com.example.drawerlayoutdemo1;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.widget.DrawerLayout;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
public class MainActivity extends Activity
{
	protected static final String TAG = "MainActivity";
	private DrawerLayout mDrawerLayout = null;
	private ListView lv = null;
	private Button but_open = null;
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
		lv = (ListView) findViewById(R.id.left_drawer);
		but_open = (Button) findViewById(R.id.but_open);
		but_open.setOnClickListener(new OnClickListener()
		{
			@Override
			public void onClick(View v)
			{
				mDrawerLayout.openDrawer(Gravity.LEFT);
			}
		});
		lv.setAdapter(new ArrayAdapter<String>(this,R.layout.test,R.id.tv_item,new String[]{"条目1","条目2","条目3"}));
		mDrawerLayout.setDrawerListener(new DrawerLayout.SimpleDrawerListener()
		{
			@Override
			public void onDrawerClosed(View drawerView)
			{
				Log.i(TAG,"抽屉关闭了...");
			}
			@Override
			public void onDrawerOpened(View drawerView)
			{
				Log.i(TAG,"抽屉打开了...");
			}
			@Override
			public void onDrawerSlide(View drawerView, float slideOffset)
			{
				Log.i(TAG,"抽屉在滑动...");
			}
			@Override
			public void onDrawerStateChanged(int newState)
			{
				switch (newState)
				{
				case DrawerLayout.STATE_DRAGGING:
					Log.i(TAG,"拖动状态");
					break;
				case DrawerLayout.STATE_IDLE:
					Log.i(TAG,"精巧状态");
					break;
				case DrawerLayout.STATE_SETTLING:
					Log.i(TAG,"设置状态");
					break;
				default:
					break;
				}
			}
		});
		lv.setOnItemClickListener(new OnItemClickListener()
		{
			@Override
			public void onItemClick(AdapterView<?

> parent, View view, int position, long id) { switch (position) { case 0: Log.i(TAG,"条目1被点击"); break; case 1: Log.i(TAG,"条目2被点击"); break; case 2: Log.i(TAG,"条目3被点击"); break; } } }); } }











相关文章:

  • 2021-04-15
  • 2021-05-25
  • 2021-09-03
  • 2022-02-05
  • 2021-07-10
  • 2021-12-20
  • 2021-07-11
  • 2022-01-14
猜你喜欢
  • 2021-10-24
  • 2021-07-25
  • 2022-12-23
  • 2022-12-23
  • 2021-09-26
  • 2021-08-03
  • 2022-12-23
相关资源
相似解决方案