文章出處
文章列表
menu部分xml代碼
1 <?xml version="1.0" encoding="utf-8"?> 2 <menu xmlns:android="http://schemas.android.com/apk/res/android" > 3 4 <item android:id="@+id/action_search" 5 android:title="搜索1" 6 android:orderInCategory="100" 7 android:showAsAction="always"/> 8 9 <item android:id="@+id/action_search2" 10 android:actionViewClass="android.widget.SearchView" 11 android:showAsAction="ifRoom|collapseActionView" 12 android:orderInCategory="100" 13 android:title="搜索2"/> 14 15 16 <item android:id="@+id/action_share" 17 android:title="分享" 18 android:orderInCategory="100" 19 android:icon="@drawable/ic_action_favor_normal" 20 android:showAsAction="never"/> 21 <item android:id="@+id/action_collection" 22 android:title="收藏" 23 android:orderInCategory="100" 24 android:showAsAction="never"/> 25 <item android:id="@+id/action_font" 26 android:title="字體大小" 27 android:orderInCategory="100" 28 android:showAsAction="never"/> 29 </menu>
Menu中overflower菜單圖標顯示實現【重寫onMenuOpened方法,使用反射原理】
1 /** 2 * 顯示overflower菜單圖標 3 */ 4 @Override 5 public boolean onMenuOpened(int featureId, Menu menu) { 6 if (featureId == Window.FEATURE_ACTION_BAR && menu != null) { 7 if (menu.getClass().getSimpleName().equals("MenuBuilder")) { 8 try { 9 Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE); 10 m.setAccessible(true); 11 m.invoke(menu, true); 12 } catch (Exception e) { 13 } 14 } 15 } 16 return super.onMenuOpened(featureId, menu); 17 }
針對Menu菜單中選項的事件監聽操作
1 /** 2 * menu菜單點擊操作的監聽事件 3 */ 4 @Override 5 public boolean onOptionsItemSelected(MenuItem item) { 6 switch(item.getItemId()){ 7 case android.R.id.home: 8 //finish(); 9 super.onBackPressed(); 10 break; 11 case R.id.action_add: 12 Toast.makeText(this, "添加", Toast.LENGTH_SHORT).show(); 13 break; 14 } 15 return super.onOptionsItemSelected(item); 16 }
自定義ActionBar
1 /** 2 * 初始化 ActionBar內容 3 * */ 4 private ActionBar actionBar; 5 private void initActionBar(){ 6 actionBar=super.getActionBar(); 7 actionBar.show(); 8 9 //顯示Home區域 10 actionBar.setDisplayShowHomeEnabled(true); 11 //設置home區域回退按鈕 12 actionBar.setDisplayHomeAsUpEnabled(true); 13 actionBar.setHomeAsUpIndicator(R.drawable.back_move_details_normal); 14 15 //不顯示Home區域標題 16 actionBar.setDisplayShowTitleEnabled(true);// 17 actionBar.setTitle("新聞");//設置title 18 //不顯示Logo圖片 19 actionBar.setDisplayUseLogoEnabled(false);// 20 //去除home區域的Icon圖標【將icon顏色設置為透明】 21 Drawable colorDrawable=new 22 ColorDrawable(android.R.color.transparent); 23 actionBar.setIcon(colorDrawable); 24 25 //自定義區域 26 actionBar.setDisplayShowCustomEnabled(true); 27 TextView tvTitle=new TextView(this);//this,當前承載的 28 tvTitle.setText("新聞信息");//tvTitle.setId(); 29 tvTitle.setTextSize(25); 30 int colorVal=getResources().getColor(R.color.white); 31 tvTitle.setTextColor(colorVal);//tvTitle.setTextColor(Color.WHITE); 32 tvTitle.setGravity(Gravity.CENTER); 33 34 LayoutParams layoutParams= 35 new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); 36 actionBar.setCustomView(tvTitle,layoutParams); 37 38 }
實現效果:
文章列表
全站熱搜