为界面右上角添加menu

news/2024/11/8 9:37:36/

1、效果图

2、未添加menu前的界面

 

 

3、在menu文件夹添加menu.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"><itemandroid:id="@+id/action_add_dish"android:icon="@drawable/ic_add_foreground"android:title="@string/add_dish"app:showAsAction="always"/></menu>

 

 

4、在所要显示的界面中复写onCreate方法,添加代码

 setHasOptionsMenu(true)
    override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setHasOptionsMenu(true)}

 

5、加载menu布局

    override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {inflater.inflate(R.menu.menu_all_dishes,menu)super.onCreateOptionsMenu(menu, inflater)}

6、添加点击事件

    override fun onOptionsItemSelected(item: MenuItem): Boolean {when(item.itemId){R.id.action_add_dish -> {val tost:Toast = Toast.makeText(requireActivity(),"menu is clicked",Toast.LENGTH_SHORT)tost.setGravity(Gravity.CENTER,100,0)tost.show()}}return super.onOptionsItemSelected(item)}

 

注:

fragment代码

package com.dummy.fvedish.ui.homeimport android.os.Bundle
import android.view.*
import android.widget.TextView
import android.widget.Toast
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import com.dummy.fvedish.R
import com.dummy.fvedish.databinding.FragmentHomeBindingclass HomeFragment : Fragment() {private var _binding: FragmentHomeBinding? = null// This property is only valid between onCreateView and// onDestroyView.private val binding get() = _binding!!override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setHasOptionsMenu(true)}override fun onCreateView(inflater: LayoutInflater,container: ViewGroup?,savedInstanceState: Bundle?): View {val homeViewModel =ViewModelProvider(this).get(HomeViewModel::class.java)_binding = FragmentHomeBinding.inflate(inflater, container, false)val root: View = binding.rootval textView: TextView = binding.textHomehomeViewModel.text.observe(viewLifecycleOwner) {textView.text = it}return root}override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {inflater.inflate(R.menu.menu_all_dishes,menu)super.onCreateOptionsMenu(menu, inflater)}override fun onOptionsItemSelected(item: MenuItem): Boolean {when(item.itemId){R.id.action_add_dish -> {val tost:Toast = Toast.makeText(requireActivity(),"menu is clicked",Toast.LENGTH_SHORT)tost.setGravity(Gravity.CENTER,100,0)tost.show()}}return super.onOptionsItemSelected(item)}override fun onDestroyView() {super.onDestroyView()_binding = null}
}

 


http://www.ppmy.cn/news/626059.html

相关文章

删除开始菜单栏里的快捷方式

1.打开开始菜单 2.选中要删除的快捷方式&#xff0c;点击鼠标右键 3.在出现的选项中选择“更多”-“打开文件所在的位置” 4.然后在打开的文件夹里删除快捷方式即可 参考网址&#xff1a;删除开始菜单栏里快捷方式的方法

5.11菜单

案例演示 一、创建应用 二、准备素材 三、字符串资源文件 <resources><string name"app_name">选项菜单演示</string><string name"popup_options_menu">弹出选项菜单</string> </resources> 四、主布局资源文件 &l…

后台管理左侧菜单栏图标设置

通过更改菜单项模板&#xff08;template&#xff09;中的i标签的类名&#xff0c;可以将左侧菜单栏的图标进行设置&#xff0c;我们需要在项目中使用第三方字体图标 在数据中添加一个iconsObj&#xff1a; //template中&#xff1a; <i :class"iconsObj[item.id]&quo…

后台管理左侧菜单栏

左侧菜单处理 <template><el-container><el-header><pug-header></pug-header></el-header><el-container><el-aside class"pug-el-aside"><pug-menu></pug-menu></el-aside><pug-tag-list>…

qt 菜单栏创建

.h文件内容&#xff1a; #pragma once #include <QtWidgets/QMainWindow> #include "ui_QtWidgetsApplication2.h" #include <QLabel> class QtWidgetsApplication2 : public QMainWindow { Q_OBJECT public: QtWidgetsApplication2(QWidget …

Mac如何移动隐藏删除顶部菜单栏图标

Mac如何移动隐藏删除顶部菜单栏图标&#xff1f;苹果菜单栏贯穿 Mac 的屏幕顶部。下面我们就来看看Mac是如何移动隐藏删除顶部菜单栏图标的。 左侧是苹果菜单和应用菜单&#xff0c;应用菜单一般显示你当前使用的Mac软件的所有功能菜单。 右侧通常是以图标显示的状态菜单&…

SideMenu侧滑菜单栏

主要功能:点击按钮弹出侧边栏;从屏幕边缘拖出侧边栏;当ViewPager的当前页为最左边的一页时,继续向右滑拖出侧边栏。 首先自定义一个布局,这个布局放侧边菜单栏。重写该布局的onMeasure和OnLayout来设置侧边菜单栏的宽度和位置。 @Overrideprotected void onMeasure(int wi…

Menu 菜单栏

<Menu Name"menu" HorizontalAlignment"Left" VerticalAlignment"Top" Background"Transparent" Foreground"#FF5D88C7" FontSize"18" FontFamily"STSong"> <MenuItem Header"系统管理&q…