热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

android去掉工具栏,android–如何删除默认的工具栏菜单项并替换为不同的图标?...

这就是我使用工具栏的方式.它是一个独立的工具栏,可让您更好地控制其在类中的功能.activity_home.xmlxmlns:apphttp:schemas.android.co

这就是我使用工具栏的方式.它是一个独立的工具栏,可让您更好地控制其在类中的功能.

activity_home.xml

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

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/tool_bar"

android:layout_height="56dp"

android:layout_width="match_parent"

android:elevation="5dp"

app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"

android:background="@color/primary" />

android:layout_below="@+id/tool_bar"

android:layout_width="match_parent"

android:layout_height="match_parent">

样式

@color/primary

@color/secondary

@color/black

@null

true

false

true

true

true

** MyActivity **

public class MyActivity extends ActionBarActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_home);

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

// Set navigation icon

toolbar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_launcher));

// Navigation onClickLister

toolbar.setNavigationOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// finish(); // or your action here

}

});

//Inflate menu

toolbar.inflateMenu(R.menu.menu_my);

// menu items

toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {

@Override

public boolean onMenuItemClick(MenuItem item) {

int id = item.getItemId();

if (id == R.id.action_settings) {

// Your action here

return true;

}

return false;

}

});

// Clear toolbar icons

toolbar.getMenu().clear(); // I believe this is what you are looking for

// Set title

toolbar.setTitle("Title");

//Set SubTitle

toolbar.setSubtitle("Sub Title");

}

}

更改工具栏内所有内容的工作示例

布局

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

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/toolbar"

android:layout_height="56dp"

android:layout_width="match_parent"

android:elevation="5dp"

app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"

android:background="@color/primary" />

android:layout_below="@+id/toolbar"

android:layout_width="match_parent"

android:layout_height="match_parent">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:padding="16dp"

android:text="Change Menu "

android:gravity="center_vertical"

android:id="@+id/swChaneMenu" />

菜单1

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

xmlns:tools="http://schemas.android.com/tools">

android:id="@+id/toast"

android:title="Toast"

android:orderInCategory="100"

android:icon="@drawable/ic_done_black"

app:showAsAction="always" />

菜单2

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

xmlns:tools="http://schemas.android.com/tools">

android:id="@+id/action_settings"

android:title="@string/action_settings"

android:orderInCategory="100"

app:showAsAction="never" />

活动

public class TestingActionBar extends ActionBarActivity {

SwitchCompat swChaneMenu;

Toolbar toolbar;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_testing_action_bar);

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

toolbar.setTitle("Toolbar Test 1");

toolbar.inflateMenu(R.menu.menu_testing_action_bar);

toolbar.setNavigationIcon(getResources().getDrawable(R.drawable.nav_tint));

toolbar.setNavigationOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

finish();

}

});

toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {

@Override

public boolean onMenuItemClick(MenuItem item) {

int id = item.getItemId();

if (id == R.id.toast) {

Toast.makeText(TestingActionBar.this, "Toasty", Toast.LENGTH_SHORT).show();

return true;

}

if (id == R.id.action_settings) {

Toast.makeText(TestingActionBar.this, "Settings", Toast.LENGTH_SHORT).show();

return true;

}

return false;

}

});

swChaneMenu = (SwitchCompat) findViewById(R.id.swChaneMenu);

swChaneMenu.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

@Override

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

if (isChecked) {

toolbar.setTitle("Toolbar Test 2");

toolbar.getMenu().clear();

toolbar.inflateMenu(R.menu.menu_settings);

toolbar.setNavigationIcon(null);

toolbar.setBackgroundColor(getResources().getColor(R.color.red));

} else {

toolbar.setTitle("Toolbar Test 1");

toolbar.getMenu().clear();

toolbar.inflateMenu(R.menu.menu_testing_action_bar);

toolbar.setNavigationIcon(getResources().getDrawable(R.drawable.nav_tint));

toolbar.setBackgroundColor(getResources().getColor(R.color.primary));

}

}

});

}

}

未检查开关

切换检查



推荐阅读
  • 一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ... [详细]
  • 在尝试对从复杂 XSD 生成的类进行序列化时,遇到了 `NullReferenceException` 错误。尽管已经花费了数小时进行调试和搜索相关资料,但仍然无法找到问题的根源。希望社区能够提供一些指导和建议,帮助解决这一难题。 ... [详细]
  • Spring Data JdbcTemplate 入门指南
    本文将介绍如何使用 Spring JdbcTemplate 进行数据库操作,包括查询和插入数据。我们将通过一个学生表的示例来演示具体步骤。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • 在Ubuntu系统中安装Android SDK的详细步骤及解决“Failed to fetch URL https://dlssl.google.com/”错误的方法
    在Ubuntu 11.10 x64系统中安装Android SDK的详细步骤,包括配置环境变量和解决“Failed to fetch URL https://dlssl.google.com/”错误的方法。本文详细介绍了如何在该系统上顺利安装并配置Android SDK,确保开发环境的稳定性和高效性。此外,还提供了解决网络连接问题的实用技巧,帮助用户克服常见的安装障碍。 ... [详细]
  • 本文详细介绍了一种利用 ESP8266 01S 模块构建 Web 服务器的成功实践方案。通过具体的代码示例和详细的步骤说明,帮助读者快速掌握该模块的使用方法。在疫情期间,作者重新审视并研究了这一未被充分利用的模块,最终成功实现了 Web 服务器的功能。本文不仅提供了完整的代码实现,还涵盖了调试过程中遇到的常见问题及其解决方法,为初学者提供了宝贵的参考。 ... [详细]
  • 掌握Android UI设计:利用ZoomControls实现图片缩放功能
    本文介绍了如何在Android应用中通过使用ZoomControls组件来实现图片的缩放功能。ZoomControls提供了一种简单且直观的方式,让用户可以通过点击放大和缩小按钮来调整图片的显示大小。文章详细讲解了ZoomControls的基本用法、布局设置以及与ImageView的结合使用方法,适合初学者快速掌握Android UI设计中的这一重要功能。 ... [详细]
  • 技术分享:深入解析GestureDetector手势识别机制
    技术分享:深入解析GestureDetector手势识别机制 ... [详细]
  • 本文介绍了几种常用的图像相似度对比方法,包括直方图方法、图像模板匹配、PSNR峰值信噪比、SSIM结构相似性和感知哈希算法。每种方法都有其优缺点,适用于不同的应用场景。 ... [详细]
  • 如何将Python与Excel高效结合:常用操作技巧解析
    本文深入探讨了如何将Python与Excel高效结合,涵盖了一系列实用的操作技巧。文章内容详尽,步骤清晰,注重细节处理,旨在帮助读者掌握Python与Excel之间的无缝对接方法,提升数据处理效率。 ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • Spring框架中的面向切面编程(AOP)技术详解
    面向切面编程(AOP)是Spring框架中的关键技术之一,它通过将横切关注点从业务逻辑中分离出来,实现了代码的模块化和重用。AOP的核心思想是将程序运行过程中需要多次处理的功能(如日志记录、事务管理等)封装成独立的模块,即切面,并在特定的连接点(如方法调用)动态地应用这些切面。这种方式不仅提高了代码的可维护性和可读性,还简化了业务逻辑的实现。Spring AOP利用代理机制,在不修改原有代码的基础上,实现了对目标对象的增强。 ... [详细]
  • 本文探讨了利用Java实现WebSocket实时消息推送技术的方法。与传统的轮询、长连接或短连接等方案相比,WebSocket提供了一种更为高效和低延迟的双向通信机制。通过建立持久连接,服务器能够主动向客户端推送数据,从而实现真正的实时消息传递。此外,本文还介绍了WebSocket在实际应用中的优势和应用场景,并提供了详细的实现步骤和技术细节。 ... [详细]
  • 本文作为“实现简易版Spring系列”的第五篇,继前文深入探讨了Spring框架的核心技术之一——控制反转(IoC)之后,将重点转向另一个关键技术——面向切面编程(AOP)。对于使用Spring框架进行开发的开发者来说,AOP是一个不可或缺的概念。了解AOP的背景及其基本原理,对于掌握这一技术至关重要。本文将通过具体示例,详细解析AOP的实现机制,帮助读者更好地理解和应用这一技术。 ... [详细]
author-avatar
HANK_LIU刘浩象_862
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有