private ActionBar mActionbar=null;
private View mCustomActionbar = null;
private void setCustomActionbar() {
mActionbar = getActionBar();
mActionbar.setBackgroundDrawable(getResources().getDrawable(R.drawable.actionbar_bg));
mActionbar.setDisplayShowTitleEnabled(false);
mActionbar.setDisplayShowHomeEnabled(false);
mActionbar.setDisplayShowCustomEnabled(true);
mCustomActionbar = LayoutInflater.from(this).inflate(R.layout.custom_actionbar_layout, null);
mActionbar.setCustomView(mCustomActionbar, new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.MATCH_PARENT));
mActionbar.show();
invalidateOptionsMenu();
}
//actionbar에 custom view를 등록하여 사용할 경우
//onCreateOptionsMenu에서 inflate하는 menu에는 actionbar에 표시되는 item이 포함되지 않도록 하는 것이 좋다.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.testmenu, menu);
updateCustomActionbar();
return true;
}
public void updateCustomActionbar(){
View item = mCustomActionbar.findViewById(R.id.actionbar_item1);
//Do something
}
/*
android:showAsAction="always" //actionbar에 표시할지 메뉴 버튼을 눌렀을때 표시할지 설정
ifRoom : action bar에 표시할 수 있는 공간이 있으면 actionbar에 표시
never : 항상 메뉴 버튼에 표시(기본값, showAsAction 설정 값이 없으면 기본으로 설정됨)
withText : 메뉴로 설정된 아이콘과 텍스트를 actionbar에 표시
always : 항상 actionbar에 표시
android:actionLayout="@layout/custom_action_layout" //actionbar에 표시될때 사용할 메뉴의 레이아웃 설정
*/
/menu/testmenu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/item1"
android:title="@string/item1">
</item>
<group android:id="@+id/group_item1"
android:visible="false">
<item
android:id="@+id/group_sub_item1"
android:title="item1">
</item>
<item
android:id="@+id/group_sub_item2"
android:title="item2">
</item>
</group>
<item
android:id="@+id/item3"
android:icon="@drawable/item3_icon"
android:title="item3">
<menu>
<item
android:id="@+id/item3_sub_item1"
android:title="@string/item3_sub_item1">
</item>
<item
android:id="@+id/item3_sub_item2"
android:title="@string/item3_sub_item2">
</item>
</menu>
</item>
</menu>
'programmer > android' 카테고리의 다른 글
ringtone/alarm tone 설정 (0) | 2013.07.01 |
---|---|
seekbar progress 위치에 value 표시 (0) | 2013.06.25 |
dialog position (0) | 2013.06.20 |
Using EditText (0) | 2013.06.14 |
gridview spacing (0) | 2013.06.11 |