Android 抽屉的使用方法

抽屉发展顺序,TabHost--->SlidingMenu--->DrawerLayout--->ResideMenu;

SlidingMenu是推动式,DrawerLayout是覆盖式。本文是DrawerLayout和Folder-ResideMenu-master

GrawerLayout使用的时候,注意要使用全包名,android.support.v4.widget.DrawerLayout。而且是根布局控件


1,xml文件,一个垂直的LinearLayout控制主界面。旁边两个抽屉Fragment

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:id="@+id/act_home_drawerLayout">

    <!-- 主页面 -->

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="#000"
            android:padding="10dp" >

            <ImageView
                android:id="@+id/act_home_leftiv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:clickable="true"
                android:onClick="home_left_click"
                android:paddingLeft="10dp"
                android:src="@drawable/night_biz_news_column_drag_normal" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:text="@string/act_home_tv"
                android:textColor="#fff"
                android:textSize="30sp" />

            <ImageView
                android:id="@+id/act_home_rightiv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:clickable="true"
                android:onClick="home_right_click"
                android:paddingRight="10dp"
                android:src="@drawable/biz_account_head_selector_bg" />
        </RelativeLayout>

        <FrameLayout
            android:id="@+id/act_home_diary"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >
        </FrameLayout>
    
	</LinearLayout>
<!-- 左抽屉 -->
    <FrameLayout
        android:id="@+id/act_left_diary"
        android:layout_width="240dip"
        android:layout_height="fill_parent"
        android:background="#00f"
        android:layout_gravity="left" >
    </FrameLayout>
<!-- 右抽屉 -->
    <FrameLayout
        android:id="@+id/act_right_diary"
        android:layout_width="240dip"
        android:layout_height="fill_parent"
        android:background="#f00"
        android:layout_gravity="right">
    </FrameLayout>
</android.support.v4.widget.DrawerLayout>

2,主Activity文件,调用方法是用DrawerLayout的id.openDrawer方法
package com.xdl.activity;

import android.os.Bundle;
import android.support.v4.widget.DrawerLayout;
import android.view.Gravity;
import android.view.View;

import com.xdl.base.BaseActivity;
import com.xdl.bmob.R;

public class HomeActivity extends BaseActivity {
	private DrawerLayout drawer;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		setContentView(R.layout.act_home);
		initview();
	}
	private void initview() {
		drawer = (DrawerLayout) findViewById(R.id.act_home_drawerLayout);
	}
//	---------------------------------------------------------
//	当点击左侧菜单事件的时候
	public void home_left_click(View v){
//		打开抽屉
		drawer.openDrawer(Gravity.LEFT);
	}
	public void home_right_click(View v){
		drawer.openDrawer(Gravity.RIGHT);
	}
//	---------------------------------------------------------
}


// Folder-ResideMenu-master抽屉的使用

1,改程序要一步一步改。最简单的是导入jar包使用。在方便点直接导入工程。还有就是跟着文件报错的地方一步一步导入文件。

打开左抽屉:resideMenu.openMenu(ResideMenu.DIRECTION_LEFT);

打开右抽屉:resideMenu.openMenu(ResideMenu.DIRECTION_RIGHT);

关闭抽屉:resideMenu.closeMenu();


package com.example.test;

import com.dk.view.folder.ResideMenu;
import com.dk.view.folder.ResideMenuItem;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import android.app.Activity;

public class MainActivity extends FragmentActivity implements OnClickListener {

	private ResideMenu resideMenu;
	private ResideMenuItem item;
	
	private FragmentLeft left;
	
	private Button butLeft;
	private Button butReight;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initview();
        initfragment();
        initResideMenu();
    }

	private void initview() {
		butLeft = (Button) findViewById(R.id.title_bar_left_menu);
		butReight = (Button) findViewById(R.id.title_bar_right_menu);
		butLeft.setOnClickListener(this);
		butReight.setOnClickListener(this);
	}
	//初始化fragment
	private void initfragment() {
		left = new FragmentLeft();
		getSupportFragmentManager().beginTransaction().add(R.id.main_fragment, left).commit();
		
	}
	//初始化resideMenu
	public void initResideMenu() {
		// attach to current activity;
        resideMenu = new ResideMenu(this);
        resideMenu.setBackground(R.drawable.menu_background);
        resideMenu.attachToActivity(this);//设置当前Activity的活动

        // create menu items;
//        String titles[] = { "Home", "Gallery", "Calendar", "Settings" };
//        int icon[] = { R.drawable.icon_home, R.drawable.icon_profile, R.drawable.icon_calendar, R.drawable.icon_settings };

//        for (int i = 0; i < titles.length; i++){
//             item = new ResideMenuItem(this, icon[i], titles[i]);
////            item.setOnClickListener(this);
//            resideMenu.addMenuItem(item,  ResideMenu.DIRECTION_LEFT); // or  ResideMenu.DIRECTION_RIGHT
//        }
       
		
	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.title_bar_left_menu:
			resideMenu.openMenu(ResideMenu.DIRECTION_LEFT);//打开左抽屉
			break;
		case R.id.title_bar_right_menu:
			resideMenu.openMenu(ResideMenu.DIRECTION_RIGHT);
			break;

		default:
			break;
		}
	}


    
}


待更新、、








你可能感兴趣的:(Android 抽屉的使用方法)