侧滑菜单的实现(按照步骤一步一步来)

详情的话可以查看这个网址:https://blog.csdn.net/s1674521/article/details/62220187

一、倒依赖

 compile 'com.android.support:design:27.1.1'
 compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'

二、在Activity的Xml中

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_na"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/colorPrimary"
            android:gravity="center_vertical"
            android:orientation="horizontal">
            <ImageView
                android:id="@+id/main_menu"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/night"
                android:background="@color/colorPrimary"

                android:layout_margin="20dp"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="旅行者说"
                android:textColor="#ffffff"
                android:textSize="20sp"
                android:layout_marginLeft="16dp"/>
            <ImageView
                android:id="@+id/search"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/chat"
                android:background="@color/colorPrimary"
                android:layout_margin="20dp"/>
        </LinearLayout>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="主页"
            android:textSize="22sp"
            android:gravity="center"/>
    </LinearLayout>
    <android.support.design.widget.NavigationView
        android:id="@+id/nav"
        android:layout_gravity="left"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        app:headerLayout="@layout/head"
        app:menu="@menu/new_menu"

        >

    </android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>

三、在Drawab里创建一个head.Xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
   >
    <ImageView
        android:id="@+id/person"
        android:layout_width="72dp"
        android:layout_height="72dp"
        android:layout_marginTop="42dp"
        android:src="@drawable/head"/>

</LinearLayout>

四、在Drawab里创建menu

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group
        android:checkableBehavior="single">
        <item
            android:id="@+id/favorite"
            android:icon="@drawable/ic_menu_news"
            android:checkable="true"
            android:title="    新闻"/>

    </group>
    <item
        android:id="@+id/wallet"
        android:icon="@drawable/ic_btn_love"

        android:title="    图片"/>
    <item
        android:id="@+id/photo"
        android:icon="@mipmap/ic_launcher"
        android:title="    视频"/>
    <item
        android:id="@+id/dress"
        android:icon="@mipmap/ic_launcher"
        android:title="    装扮"/>
    <item
        android:id="@+id/file"
        android:icon="@drawable/ic_add"
        android:title="    收藏"/>
    <item
        android:id="@+id/meinv"
        android:icon="@drawable/chat"
        android:title="    美女陪聊"/>
    <item
        android:id="@+id/qita"
        android:icon="@drawable/ic_menu_other"
        android:title="    其他服务"/>
    <item

        android:title="    设置"/>
    <item
        android:id="@+id/yejian"
        android:icon="@drawable/night"
        android:title="    夜间模式"/>
    <item
        android:id="@+id/guanyu"
        android:icon="@mipmap/ic_launcher"
        android:title="    关于"/>
    <item
        android:id="@+id/shezhi"
        android:icon="@mipmap/ic_launcher"
        android:title="    设置"/>


</menu>

五、在Activity中

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private DrawerLayout drawerLayout;
    private SystemBarTintManager tintManager;
    private NavigationView navigationView;
    ImageView menu;
    private View headerView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
        initWindow();
        drawerLayout = (DrawerLayout) findViewById(R.id.activity_na);
        navigationView = (NavigationView) findViewById(R.id.nav);
        menu= (ImageView) findViewById(R.id.main_menu);
        //获取头布局
        headerView = navigationView.getHeaderView(0);
        headerView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, MainActivity2.class);
                startActivity(intent);
            }
        });
       // View headerView2 = navigationView.getHeaderView(1);//获取头布局
        menu.setOnClickListener(this);
        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch (item.getItemId()){
                    case R.id.favorite:
                        Intent intent = new Intent(MainActivity.this, MainActivity.class);
                        startActivity(intent);
                        break;
                    case R.id.wallet  :
                        Intent intent2 = new Intent(MainActivity.this, MainActivity2.class);
                        startActivity(intent2);
                        break;
                    case R.id.photo :
                        Intent intent3 = new Intent(MainActivity.this, MainActivity3.class);
                        startActivity(intent3);
                        break;
                    case R.id.dress:
                        Intent intent4 = new Intent(MainActivity.this, MainActivity4.class);
                        startActivity(intent4);
                        break;
                    case R.id.file :
                        Intent intent5 = new Intent(MainActivity.this, MainActivity5.class);
                        startActivity(intent5);
                        break;
                    case R.id.meinv :
                        Intent intent6 = new Intent(MainActivity.this, MainActivity6.class);
                        startActivity(intent6);
                        break;

                    case R.id.qita :
                        Intent intent7 = new Intent(MainActivity.this, MainActivity8.class);
                        startActivity(intent7);
                        break;
                    case R.id.yejian :
                        Intent intent8 = new Intent(MainActivity.this, MainActivity9.class);
                        startActivity(intent8);
                        break;
                    case  R.id.guanyu :
                        Intent intent9 = new Intent(MainActivity.this, MainActivity2.class);
                        startActivity(intent9);
                        break;

                }

                Toast.makeText(MainActivity.this,item.getTitle().toString(),Toast.LENGTH_SHORT).show();
                drawerLayout.closeDrawer(navigationView);
                return true;
            }
        });
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.main_menu://点击菜单,跳出侧滑菜单
                if (drawerLayout.isDrawerOpen(navigationView)){
                    drawerLayout.closeDrawer(navigationView);
                }else{
                    drawerLayout.openDrawer(navigationView);
                }
                break;
        }
    }
    private void initWindow() {//初始化窗口属性,让状态栏和导航栏透明
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
            tintManager = new SystemBarTintManager(MainActivity.this);
            int statusColor = Color.parseColor("#1976d2");
            tintManager.setStatusBarTintColor(statusColor);
            tintManager.setStatusBarTintEnabled(true);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_42749901/article/details/81274674