文章出處

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     }

實現效果:


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()