首页 > 系统 > Android > 正文

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

2020-04-11 11:28:46
字体:
来源:转载
供稿:网友

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);     }

实现效果:

以上所述就是本文的全部内容了,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表