返回顶部
首页 > 资讯 > 移动开发 >Android中ActionBar以及menu的代码设置样式
  • 357
分享到

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

actionbarAndroid 2022-06-06 09:06:31 357人浏览 八月长安
摘要

menu部分xml代码 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:Andro

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方法,使用反射原理】



  @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菜单中选项的事件监听操作


 
 @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



 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和ViewPager切换页面android中开启actionbar的两种方法Android自定义ActionBar实例Android动态修改ToolBar的Menu菜单示例Android折叠式Toolbar使用完全解析(CollapsingToolbarLayout)Android自定义Toolbar使用方法详解Android下拉列表选项框及指示箭头动画android中一些特殊字符(如:←↑→↓等箭头符号)的Unicode码值Android自定义ViewGroup实现带箭头的圆角矩形菜单Android中ActionBar和ToolBar添加返回箭头的实例代码


--结束END--

本文标题: Android中ActionBar以及menu的代码设置样式

本文链接: https://lsjlt.com/news/26594.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作