Android ActionBar以及menu的代碼設定樣式

來源:互聯網
上載者:User

標籤:

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("新聞");//設定title18          //不顯示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     }

實現效果:

Android ActionBar以及menu的代碼設定樣式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.