android studio自定义menu

新建menu_main.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/item_search"
        android:title="search"
        android:icon="@android:drawable/ic_menu_search"
        app:showAsAction="always"/>
    <item
        android:id="@+id/item_share"
        android:title="share"
        android:icon="@android:drawable/ic_menu_share"
        app:showAsAction="always"/>
</menu>
在mainactivity中写入:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main,menu);
    return true;
}

Android Studio中,自定义抽屉(通常指的是导航抽屉)是一个常见的用户界面元素,用于组织应用程序的不同功能模块。以下是如何在Android项目中创建和定制一个自定义抽屉菜单的步骤: 1. **设置布局**: - 创建一个XML文件,如`activity_main.xml`,在这个布局中,通常会包含一个`NavigationView`组件,它是用来显示抽屉菜单的。在`<androidx.drawerlayout.widget.DrawerLayout>`中添加`NavigationView`。 ```xml <com.google.android.material.navigation.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" app:menu="@menu/drawer_items" /> ``` 2. **菜单资源**: - 在`res/menu/drawer_items.xml`文件中,定义抽屉中的各个菜单项(`<item>`标签)和它们关联的功能(`app:actionXXX`属性)。 ```xml <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/nav_home" android:icon="@drawable/ic_home" android:title="@string/home" /> <item android:id="@+id/nav_features" android:icon="@drawable/ic_features" android:title="@string/features" /> <!-- 添加更多菜单项 --> </menu> ``` 3. **处理点击事件**: - 在Activity或Fragment中,我们需要获取`NavigationView`的实例,并为其设置`NavigationItemSelectedListener`,以便在用户点击抽屉菜单时触发相应的动作。 ```java NavigationView navView = findViewById(R.id.nav_view); navView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { int id = item.getItemId(); switch (id) { case R.id.nav_home: // 执行home功能 break; case R.id.nav_features: // 执行features功能 break; // 更多菜单项的处理 } DrawerLayout drawer = findViewById(R.id.drawer_layout); drawer.closeDrawer(GravityCompat.START); return true; } }); ``` 4. **关闭抽屉**: - 当用户从另一个界面返回或完成某个操作后,记得关闭抽屉,这可以通过`DrawerLayout`的`closeDrawer()`方法来实现。 ```java DrawerLayout drawer = findViewById(R.id.drawer_layout); drawer.closeDrawer(GravityCompat.START); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值