Android中ActionBar以及menu的代码设置样式
作者:hebedich 时间:2023-11-24 03:34:33
menu部分xml代码
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/action_search"
android:title="搜索1"
android:orderInCategory="100"
android:showAsAction="always"/>
<item android:id="@+id/action_search2"
android:actionViewClass="android.widget.SearchView"
android:showAsAction="ifRoom|collapseActionView"
android:orderInCategory="100"
android:title="搜索2"/>
<item android:id="@+id/action_share"
android:title="分享"
android:orderInCategory="100"
android:icon="@drawable/ic_action_favor_normal"
android:showAsAction="never"/>
<item android:id="@+id/action_collection"
android:title="收藏"
android:orderInCategory="100"
android:showAsAction="never"/>
<item android:id="@+id/action_font"
android:title="字体大小"
android:orderInCategory="100"
android:showAsAction="never"/>
</menu>
Menu中overflower菜单图标显示实现【重写onMenuOpened方法,使用反射原理】
/**
* 显示overflower菜单图标
*/
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
if (featureId == Window.FEATURE_ACTION_BAR && menu != null) {
if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
try {
Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (Exception e) {
}
}
}
return super.onMenuOpened(featureId, menu);
}
针对Menu菜单中选项的事件监听操作
/**
* menu菜单点击操作的监听事件
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case android.R.id.home:
//finish();
super.onBackPressed();
break;
case R.id.action_add:
Toast.makeText(this, "添加", Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
自定义ActionBar
/**
* 初始化 ActionBar内容
* */
private ActionBar actionBar;
private void initActionBar(){
actionBar=super.getActionBar();
actionBar.show();
//显示Home区域
actionBar.setDisplayShowHomeEnabled(true);
//设置home区域回退按钮
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeAsUpIndicator(R.drawable.back_move_details_normal);
//不显示Home区域标题
actionBar.setDisplayShowTitleEnabled(true);//
actionBar.setTitle("新闻");//设置title
//不显示Logo图片
actionBar.setDisplayUseLogoEnabled(false);//
//去除home区域的Icon图标【将icon颜色设置为透明】
Drawable colorDrawable=new
ColorDrawable(android.R.color.transparent);
actionBar.setIcon(colorDrawable);
//自定义区域
actionBar.setDisplayShowCustomEnabled(true);
TextView tvTitle=new TextView(this);//this,当前承载的
tvTitle.setText("新闻信息");//tvTitle.setId();
tvTitle.setTextSize(25);
int colorVal=getResources().getColor(R.color.white);
tvTitle.setTextColor(colorVal);//tvTitle.setTextColor(Color.WHITE);
tvTitle.setGravity(Gravity.CENTER);
LayoutParams layoutParams=
new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
actionBar.setCustomView(tvTitle,layoutParams);
}
实现效果:
以上所述就是本文的全部内容了,希望大家能够喜欢。
标签:Android,ActionBar
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Android studio设计简易计算器
2023-01-26 22:21:40
![](https://img.aspxhome.com/file/2023/2/138282_0s.jpg)
Spring AOP中的JDK和CGLib动态代理哪个效率更高?
2023-07-02 18:42:50
![](https://img.aspxhome.com/file/2023/6/77336_0s.png)
详解C#通过反射获取对象的几种方式比较
2021-07-26 17:45:55
![](https://img.aspxhome.com/file/2023/5/126045_0s.png)
Android自定义View实现支付宝咻一咻效果
2022-08-06 11:02:14
![](https://img.aspxhome.com/file/2023/9/123309_0s.gif)
PipedWriter和PipedReader源码分析_动力节点Java学院整理
2022-03-13 19:40:16
C# 获取本机IP地址(IPv4和IPv6)
2023-09-04 08:48:36
![](https://img.aspxhome.com/file/2023/4/111234_0s.jpg)
Flutter实现底部导航栏效果
2022-03-28 05:41:46
![](https://img.aspxhome.com/file/2023/8/130448_0s.jpg)
java虚拟机原理:Class字节码二进制文件分析
2022-02-06 09:02:33
![](https://img.aspxhome.com/file/2023/6/101946_0s.jpg)
C# IsDefined的问题
2022-07-15 10:37:13
Java手写线程池的实现方法
2023-10-30 12:50:03
![](https://img.aspxhome.com/file/2023/1/58701_0s.jpg)
C语言内存操作函数详解
2021-09-01 01:50:36
![](https://img.aspxhome.com/file/2023/4/114934_0s.png)
功能强大的Android滚动控件RecyclerView
2022-11-30 13:45:27
![](https://img.aspxhome.com/file/2023/7/137487_0s.png)
Java synchronized重量级锁实现过程浅析
2023-10-25 14:10:17
![](https://img.aspxhome.com/file/2023/7/79187_0s.png)
SpringBoot用@Async注解实现异步任务
2023-08-07 06:36:09
![](https://img.aspxhome.com/file/2023/0/67100_0s.png)
java随机验证码生成实现实例代码
2022-05-18 03:03:31
java设计模式之简单工厂模式简述
2021-06-14 17:11:20
![](https://img.aspxhome.com/file/2023/8/79158_0s.jpg)
spring mvc路径匹配原则详解
2021-07-23 06:34:27
Unity3D实现相机跟随控制
2021-09-03 08:38:01
![](https://img.aspxhome.com/file/2023/9/104369_0s.jpg)
Java实现单例模式的五种方法介绍
2022-10-20 17:32:56
Android 沉浸式状态栏与隐藏导航栏实例详解
2021-09-08 07:51:14
![](https://img.aspxhome.com/file/2023/5/125405_0s.png)