2013.12.03(2) ——— android ActionbarSherlockSample之Simple

2013.12.03(2) ——— android ActionbarSherlockSample之Simple

ActionbarSherlockSample,简称abs,是一个主要用来兼容ActionBar的开源项目
https://github.com/JakeWharton/ActionBarSherlock


/*
 * Copyright (C) 2011 Jake Wharton
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.actionbarsherlock.sample.demos;

import android.os.Bundle;
import android.widget.TextView;

import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.MenuItem;

public class Simple extends SherlockActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        setTheme(SampleList.THEME); //Used for theme switching in samples
        super.onCreate(savedInstanceState);
        setContentView(R.layout.text);
        ((TextView)findViewById(R.id.text)).setText(R.string.simple_content);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }
    
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
    	if(item.getItemId()==android.R.id.home){
    		finish();
    		return true;
    	}
    	return super.onOptionsItemSelected(item);
    }
}




只有一点:android.R.id.home就是点了左上角的<符号,那如何控制<符号的显示呢?

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
//getActionBar().setDisplayHomeAsUpEnabled(true);//这个是android自己的设置方法




一些常见api:


1、是否显示actionbar
getSupportActionBar().setDisplayShowTitleEnabled(true)

2、是否显示自定义的view
getSupportActionBar().setDisplayShowCustomEnabled(true);
一般和
getSupportActionBar().setCustomView(R.layout.custom_view);

3、自定义logo
<item name="android:icon">@drawable/action_bar_title_maintab_logo</item>
<item name="icon">@drawable/action_bar_title_maintab_logo</item>


4、修改右上角更多按钮下拉框的样式
背景色
<style name="CustomMainPopupMenu" parent="android:Widget.Holo.PopupMenu">
        <item name="android:popupBackground">#ffffff</item>
    </style>

间隔线的高度和颜色
   
<style name="CustomMainDropDown" parent="Sherlock.__Widget.Holo.ListView">
        <item name="android:dividerHeight">1px</item>
        <item name="android:divider">@color/tab_hot_popumenu_line</item>
    </style>

字体
   
<style name="CustomMainPopupMenuTextLarge" parent="TextAppearance.Sherlock.Widget.PopupMenu.Large">
        <item name="android:textColor">#546f8a</item>
    </style>

    <style name="CustomMainPopupMenuTextSmall" parent="TextAppearance.Sherlock.Widget.PopupMenu.Small">
        <item name="android:textColor">#546f8a</item>
    </style>


使用
<style name="MainActivityTheme" parent="Theme.Sherlock">
        <item name="popupMenuStyle">@style/CustomMainPopupMenu</item>
        <item name="android:popupMenuStyle">@style/CustomMainPopupMenu</item>
        <item name="dropDownListViewStyle">@style/CustomMainDropDown</item>
        <item name="android:dropDownListViewStyle">@style/CustomMainDropDown</item>
        <item name="textAppearanceLargePopupMenu">@style/CustomMainPopupMenuTextLarge</item>
        <item name="android:textAppearanceLargePopupMenu">@style/CustomMainPopupMenuTextLarge</item>
        <item name="textAppearanceSmallPopupMenu">@style/CustomMainPopupMenuTextSmall</item>
        <item name="android:textAppearanceSmallPopupMenu">@style/CustomMainPopupMenuTextSmall</item>
    </style>



5、屏蔽menu实体键

//忽略实体menu键
    private void ignoreMenu(){
        try {
            ViewConfiguration config = ViewConfiguration.get(this);
            Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
            if(menuKeyField != null) {
                menuKeyField.setAccessible(true);
                menuKeyField.setBoolean(config, false);
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }


在Application的onCreate里面 调用 这个 就可以屏蔽menu键,让overflow常显

但是 小米v4 没有成功

猜你喜欢

转载自trylovecatch.iteye.com/blog/1984353