Android中ActionBar以及menu的代码设置样式_Android

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
actionbar menu 样式、android menu菜单样式、android popmenu 样式、android menuitem样式、android menu样式,以便于您获取更多的相关知识。

时间: 2025-01-01 17:24:21

Android中ActionBar以及menu的代码设置样式_Android的相关文章

Android中ActionBar以及menu的代码设置样式

  这篇文章主要介绍了Android中ActionBar以及menu的代码设置样式的相关资料,需要的朋友可以参考下 menu部分xml代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://sche

Android中ActionBar和ToolBar添加返回箭头的实例代码

1.ActionBar添加返回箭头 //onCreate方法中 ActionBar actionBar = this.getSupportActionBar(); actionBar.setTitle("搜索功能"); actionBar.setDisplayHomeAsUpEnabled(true); //activity类中的方法 @Override public boolean onOptionsItemSelected(MenuItem item) { if(item.getI

Android中Property模块的键值设置

Android中Property模块的键值设置 Prop模块是保存少量的全局共享信息,其保存的数据具有信息量少,跨进程共享数据等特性:每一条信息包含两个属性,键名和键名对应的键值,例如: ro.product.locale.language=en "Ro.product.locale.language"表示本产品本地语言,表示该条信息的名字,"en"表示该条信息的取值为英文,这样任何一个应用程序就知道本机使用的语言情况.在接口设计时也需要有两个参数,name和val

Android中RecyclerView实现横向滑动代码

RecyclerView 是Android L版本中新添加的一个用来取代ListView的SDK,它的灵活性与可替代性比listview更好.本文给大家介绍Android中RecyclerView实现横向滑动代码,一起看看吧. android.support.v7.widget.RecyclerView 功能:RecyclerView横向滑动 控件:<android.support.v7.widget.RecyclerView /> Java类:RecyclerView.GalleryAdap

Android 中ActionBar+fragment实现页面导航的实例

Android 中ActionBar+fragment实现页面导航的实例 为保证android2.0以上均能运行,使用support.v7库下的actionbar及fragment 继承自AppCompatActivity(ActionBarActivity已过时)使用getSupportActionBar()得到ActionBar, ActionBar.Tab,这里Tab必须设置监听,在监听中实现Fragment的切换. 这里重点提一下,Theme主题一定要适配,因为我使用的是AppCompa

android-VB中base64编码如何转换到Android中,已有初步代码,但转换结果不一致

问题描述 VB中base64编码如何转换到Android中,已有初步代码,但转换结果不一致 没搞过VB 现在给我一串VB中的base64编码,移植到Android中,按照我的想法写好之后,发现编码之后的结果并不一样,请大家给我看看. VB: Set m_oXMLElement = m_oXMLDoc.createElement("TmpBase64") m_oXMLElement.dataType = "bin.base64" Public Function Enc

Android中复制图片的实例代码

activity_main.xml中的配置 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent&quo

Android中ActionBar中不显示overflow(就是三个点的那个按钮)

[问题] 折腾: [记录]继续尝试给Android程序的右上角的ActionBar中添加三个点的选项按钮 期间,已经按照官网的教程: Action Bar | Android Developers 去添加代码,增加menu,然后显示在ActionBar中了. 但是遇到的问题是: 对于menu的item,没有指定android:showAsAction为ifRoom的话,结果对于: PAD来说,也还是会直接显示在ActionBar上面,而没有出现所希望出现的overflow按钮,即三个点的那个按钮

灵活使用Android中ActionBar和ViewPager切换页面_Android

本文实例讲述了Android使用ActionBar和ViewPager切换页面,分享给大家供大家参考.具体如下: 运行效果截图如下: 项目布局如下: 具体代码如下: MainActivity.java代码 import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.