萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 安卓開發 >> Android中ActionBar以及menu的代碼設置樣式

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

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 /** * 顯示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菜單中選項的事件監聽操作

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 /** * 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

  ?

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 30 31 32 33 34 35 36 37 38 /** * 初始化 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);   }

  實現效果:

  以上所述就是本文的全部內容了,希望大家能夠喜歡。

copyright © 萬盛學電腦網 all rights reserved