菜单的利用以及侧拉栏的使用

来源:互联网 发布:汽配软件 编辑:程序博客网 时间:2024/06/16 16:02

在布局文件中DrawerLayout布局中第一个布局或控件为主界面,第二个布局或控件为侧拉界面,注意侧拉界面要加android:layout_gravity="start"即在左边,不加无效果。


activity_main.xml:


<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent">    <android.support.v7.widget.Toolbar        android:id="@+id/toolBar"        android:layout_width="match_parent"        android:layout_height="50dp"        android:elevation="4dp"        android:background="?attr/colorPrimary"        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>    <android.support.v4.widget.DrawerLayout        xmlns:android="http://schemas.android.com/apk/res/android"        xmlns:app="http://schemas.android.com/apk/res-auto"        android:id="@+id/drawer_layout"        android:layout_width="match_parent"        android:layout_height="match_parent">        <LinearLayout            android:orientation="vertical"            android:layout_width="match_parent"            android:layout_height="match_parent">            <TextView                android:layout_width="match_parent"                android:layout_height="match_parent"                android:text="主界面" />        </LinearLayout>        <LinearLayout            android:orientation="vertical"            android:layout_width="240dp"            android:layout_height="match_parent"            android:layout_gravity="start"            android:background="#EFEFEF">            <TextView                android:layout_width="match_parent"                android:layout_height="match_parent"                android:text="侧拉界面"/>        </LinearLayout>    </android.support.v4.widget.DrawerLayout></LinearLayout>


MainActivity.class:


import android.os.Bundle;import android.support.v4.view.GravityCompat;import android.support.v4.widget.DrawerLayout;import android.support.v7.app.ActionBar;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.Toolbar;import android.view.Menu;import android.view.MenuItem;import android.widget.Toast;public class MainActivity extends AppCompatActivity {    DrawerLayout drawerLayout;    @Override    protected void onCreate(Bundle saveInstanceState){        super.onCreate(saveInstanceState);        setContentView(R.layout.activity_main);        Toolbar toolBar=(Toolbar)findViewById(R.id.toolBar);        setSupportActionBar(toolBar);   //将ActionBar换位Toolbar,具体可看之前的关于Toolbar的博文,将style中的APPThem改成NoActionBar        ActionBar actionBar=getSupportActionBar();        if(actionBar!=null){            actionBar.setDisplayHomeAsUpEnabled(true);  //Toolbar最左边的按钮即为HomeAsUp            actionBar.setHomeAsUpIndicator(R.drawable.ico);         }        drawerLayout=(DrawerLayout)findViewById(R.id.drawer_layout);    }    //获取菜单按钮    @Override    public boolean onCreateOptionsMenu(Menu menu){        getMenuInflater().inflate(R.menu.toobar,menu);        return true;    }    //菜单按钮点击事件    @Override    public boolean onOptionsItemSelected(MenuItem item){        switch(item.getItemId()){            case android.R.id.home://Toolbar的最左边的按钮                drawerLayout.openDrawer(GravityCompat.START);//打开侧拉栏                break;            case R.id.ico://Toolbar在menu菜单中添加的按钮                Toast.makeText(this,"Hello",Toast.LENGTH_SHORT).show();                     break;        }        return true;    }}


在res中新建menu文件夹,新建toolbar.xml文件:


<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto">    <item        android:id="@+id/ico"        android:icon="@drawable/ico"        android:title="ico"        app:showAsAction="always"/></menu>



原创粉丝点击