• 组合控件——顶部导航栏——溢出菜单OverflowMenu


    点击导航栏右边的三点图标,会弹出溢出菜单OverflowMenu,意指导航栏不够放了、溢出来了。


    溢出菜单的菜单项也在res\menu下面的XML文件中定义,不同之处是多了个showAsAction属性。该属性用来控制菜单项在导航栏上的展示位置,具体的取值说明见下表。

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto" >
        <item
            android:id="@+id/menu_refresh"
            android:icon="@drawable/ic_refresh"
            app:showAsAction="ifRoom"
            android:title="刷新"/>
        <item
            android:id="@+id/menu_about"
            android:icon="@drawable/ic_about"
            app:showAsAction="never"
            android:title="关于"/>
        <item
            android:id="@+id/menu_quit"
            android:icon="@drawable/ic_quit"
            app:showAsAction="never"
            android:title="退出"/>
    </menu>

    布局:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <androidx.appcompat.widget.Toolbar
            android:id="@+id/tl_head"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/blue_light"
            app:navigationIcon="@drawable/ic_back" />
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:orientation="vertical"
            android:padding="5dp">
    
            <TextView
                android:id="@+id/tv_desc"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@color/black"
                android:textSize="17sp"
                android:text="该页面演示溢出菜单功能" />
        </LinearLayout>
    
    </LinearLayout>

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto" >
    
        <item
            android:id="@+id/menu_refresh"
            android:icon="@drawable/ic_refresh"
            app:showAsAction="ifRoom"
            android:title="刷新"/>
    
        <item
            android:id="@+id/menu_about"
            android:icon="@drawable/ic_about"
            app:showAsAction="never"
            android:title="关于"/>
        
        <item
            android:id="@+id/menu_quit"
            android:icon="@drawable/ic_quit"
            app:showAsAction="never"
            android:title="退出"/>
        
        
    </menu>

    日期代码:

    package com.example.myapplication.widget;
    
    import android.annotation.SuppressLint;
    import android.text.TextUtils;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    @SuppressLint("SimpleDateFormat")
    public class DateUtil {
        // 获取指定格式的日期时间
        public static String getNowDateTime(String formatStr) {
            String format = formatStr;
            if (TextUtils.isEmpty(format)) {
                format = "yyyyMMddHHmmss";
            }
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            return sdf.format(new Date());
        }
    
        // 获取当前的日期时间
        public static String getNowDateTime() {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
            return sdf.format(new Date());
        }
    
        // 获取当前的时间
        public static String getNowTime() {
            SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
            return sdf.format(new Date());
        }
    
    }

    代码:

    package com.example.myapplication;
    
    import android.annotation.SuppressLint;
    import android.graphics.Color;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import androidx.appcompat.app.AppCompatActivity;
    import androidx.appcompat.widget.Toolbar;
    
    import com.example.myapplication.widget.DateUtil;
    
    @SuppressLint("SetTextI18n")
    public class MainActivity extends AppCompatActivity
    {
        private TextView tv_desc;
    
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            Toolbar tl_head = findViewById(R.id.tl_head); // 从布局文件中获取名叫tl_head的工具栏
            tl_head.setTitle("溢出菜单页面"); // 设置工具栏的标题文字
            tv_desc = findViewById(R.id.tv_desc);
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // 从menu_overflow.xml中构建菜单界面布局
            getMenuInflater().inflate(R.menu.menu_overflow, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            int id = item.getItemId(); // 获取菜单项的编号
            if (id == android.R.id.home) { // 点击了工具栏左边的返回箭头
                finish(); // 结束当前页面
            } else if (id == R.id.menu_refresh) { // 点击了刷新图标
                tv_desc.setText("当前刷新时间: " + DateUtil.getNowTime());
            } else if (id == R.id.menu_about) { // 点击了关于菜单项
                Toast.makeText(this, "这个是工具栏的演示demo", Toast.LENGTH_LONG).show();
            } else if (id == R.id.menu_quit) { // 点击了退出菜单项
                finish(); // 结束当前页面
            }
            return super.onOptionsItemSelected(item);
        }
    
    }

     

     

     

  • 相关阅读:
    锁定键盘、鼠标 武胜
    Begin a forensics investigation with WinHex 武胜
    vc++ 访问php webService
    VC xml解析笔记
    关于php Soap一些错误。
    ZendStudio php WebService制作一:简单WebService Demo
    vc各种字符转换
    vc2008 访问C# WebService
    ZendStudio WSDL编辑器
    Nusoap复杂对象的的webService制作
  • 原文地址:https://www.cnblogs.com/xiaobaibailongma/p/16655451.html
Copyright © 2020-2023  润新知