抽屉发展顺序,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; } } }
待更新、、