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

來源:互聯網
上載者:User

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菜單表徵圖   */  @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菜單中選項的事件監聽操作

 /** * 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);     }

實現效果:

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.