Welcome

首页 / 移动开发 / Android / Android中ActionBar以及menu的代码设置样式

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菜单图标 */@Overridepublic 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); }
实现效果:


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