悬浮按钮和可交互提示的使用

embedded/2025/2/3 10:39:55/

xmlns:app=“http://schemas.android.com/apk/res-auto”

xmlns:tools=“http://schemas.android.com/tools”

android:id=“@+id/drawerLayout”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

tools:context=“.MainActivity”>

<androidx.coordinatorlayout.widget.CoordinatorLayout

android:layout_width=“match_parent”

android:layout_height=“match_parent”>

<androidx.appcompat.widget.Toolbar

android:id=“@+id/toolbar”

android:background=“#969C99”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”/>

<com.google.android.material.floatingactionbutton.FloatingActionButton

android:id=“@+id/fab”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_gravity=“bottom|end”

android:layout_margin=“16dp”

android:src=“@drawable/yes”

app:elevation=“8dp”

/>

</androidx.coordinatorlayout.widget.CoordinatorLayout>

<com.google.android.material.navigation.NavigationView

android:id=“@+id/navView”

android:layout_width=“match_parent”

android:layout_height=“match_parent”

android:layout_gravity=“start”

app:menu=“@menu/nav_menu”

app:headerLayout=“@layout/nav_header”/>

</androidx.drawerlayout.widget.DrawerLayout>

4.修改MainActivity.java

import androidx.annotation.NonNull;

import androidx.appcompat.app.ActionBar;

import androidx.appcompat.app.AppCompatActivity;

import androidx.appcompat.widget.Toolbar;

import androidx.core.view.GravityCompat;

import androidx.drawerlayout.widget.DrawerLayout;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.Toast;

import com.google.android.material.floatingactionbutton.FloatingActionButton;

import com.google.android.material.navigation.NavigationView;

import com.google.android.material.snackbar.Snackbar;

/**

*/

public class MainActivity extends AppCompatActivity {

private DrawerLayout mDrawerLayout;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Toolbar toolbar=findViewById(R.id.toolbar);

setSupportActionBar(toolbar);

mDrawerLayout=findViewById(R.id.drawerLayout);

NavigationView navigationView=findViewById(R.id.navView);

FloatingActionButton fab=findViewById(R.id.fab);//悬浮按钮

fab.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

//可交互提示

Snackbar.make(v,“删除”,Snackbar.LENGTH_SHORT)

.setAction(“取消”, new View.OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(MainActivity.this,“已取消”,Toast.LENGTH_SHORT).show();

}

}).show();

}

});

ActionBar actionBar=getSupportActionBar();

if (actionBar!=null){

actionBar.setDisplayHomeAsUpEnabled(true);

actionBar.setHomeAsUpIndicator(R.drawable.menu);

}

// navigationView.setCheckedItem(R.id.navCall);//默认选中

navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {

@Override

public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {

switch (menuItem.getItemId()){

case R.id.navCall:

Toast.makeText(MainActivity.this,“电话”,Toast.LENGTH_SHORT).show();

break;

case R.id.navFriends:

Toast.makeText(MainActivity.this,“朋友”,Toast.LENGTH_SHORT).show();

break;

case R.id.navLocation:

Toast.makeText(MainActivity.this,“地址”,Toast.LENGTH_SHORT).show();

break;

case R.id.nav_email:

Toast.makeText(MainActivity.this,“邮箱”,Toast.LENGTH_SHORT).show();

break;

case R.id.navTask:

Toast.makeText(MainActivity.this,“任务”,Toast.LENGTH_SHORT).show();

break;

}

mDrawerLayout.closeDrawers();

return true;

}

});

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.toolbar,menu);

return true;

}

@Override

public boolean onOptionsItemSelected(@NonNull MenuItem item) {


http://www.ppmy.cn/embedded/159165.html

相关文章

计算机网络——流量控制

流量控制的基本方法是确保发送方不会以超过接收方处理能力的速度发送数据包。 通常的做法是接收方会向发送方提供某种反馈&#xff0c;如&#xff1a; &#xff08;1&#xff09;停止&等待 在任何时候只有一个数据包在传输&#xff0c;发送方发送一个数据包&#xff0c;…

【JavaEE】_MVC架构与三层架构

目录 1. MVC架构 2. 三层架构 3. MVC架构与三层架构的对比 3.1 MVC与三层架构的对比 3.2 MVC与三层架构的共性 1. MVC架构 在前文已介绍关于SpringMAC的设计模式&#xff0c;详见下文&#xff1a; 【JavaEE】_Spring Web MVC简介-CSDN博客文章浏览阅读967次&#xff0c;点…

课题介绍:基于惯性与单目视觉信息融合的室内微小型飞行器智能自主导航研究

室内微小型飞行器在国防、物流和监测等领域中应用广泛&#xff0c;但在复杂的非合作环境中实时避障和导航仍面临诸多挑战。由于微小型飞行器的载荷和能源限制&#xff0c;迫切需要开发高效的智能自主导航系统。本项目旨在研究基于惯性导航与单目视觉信息融合的技术&#xff0c;…

java知识点 | java中不同数据结构的长度计算

在Java中&#xff0c;size 和 length是两个不同的属性&#xff0c;分别用于不同的数据结构。以下是它们的详细区别和适用场景&#xff1a; 1.length 适用对象&#xff1a; 数组&#xff08;Array&#xff09;&#xff1a;数组是一个固定长度的线性数据结构&#xff0c;其长度是…

14JavaWeb——SpringBoot原理

SpingBoot原理 在前面十多天的课程当中&#xff0c;我们学习的都是web开发的技术使用&#xff0c;都是面向应用层面的&#xff0c;我们学会了怎么样去用。而我们今天所要学习的是web后端开发的最后一个篇章springboot原理篇&#xff0c;主要偏向于底层原理。 我们今天的课程安…

对象的实例化、内存布局与访问定位

一、创建对象的方式 二、创建对象的步骤: 一、判断对象对应的类是否加载、链接、初始化: 虚拟机遇到一条new指令&#xff0c;首先去检查这个指令的参数能否在Metaspace的常量池中定位到一个类的符号引用&#xff0c;并且检查这个符号引用代表的类是否已经被加载、解析和初始化…

数据分析系列--[12] RapidMiner辨别分析(含数据集)

一、数据准备 二、导入数据 三、数据预处理 四、建模辨别分析 五、导入测试集进行辨别分析 一、数据准备 点击下载数据集 二、导入数据 三、数据预处理 四、建模辨别分析 五、导入测试集进行辨别分析 Ending, congratulations, youre done.

【VM】VirtualBox安装ubuntu22.04虚拟机

阅读本文之前&#xff0c;请先根据 安装virtualbox 教程安装virtulbox虚拟机软件。 1.下载Ubuntu系统镜像 打开阿里云的镜像站点&#xff1a;https://developer.aliyun.com/mirror/ 找到如图所示位置&#xff0c;选择Ubuntu 22.04.3(destop-amd64)系统 Ubuntu 22.04.3(desto…