2013-05-01 5 views
0

난 단순한 1-Activty-Project에서 해결책을 찾고있다. 안드로이드에서 액션 바를 얻는 방법? 나는이 같은 .XML을 정의하려면,사용자 정의 된 액션 바를 얻는 방법?

actionBar = getActionBar(); 
[..] register viewpager, add tabs dynamically etc [...] 

내가 지금 자바 레이아웃 매개 변수를 추가 할 수 있습니다 ..

을하지만 : 난 다음을 사용하는 경우

, 모든 작동하지만 layouted하지 기능에 의해 내 액션 바는()의 onCreateOptionsMenu를 오버라이드 (override) :

@override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main_activity, menu); 
    return super.onCreateOptionsMenu(menu); 
} 

main_activity.xml :

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/menu_main_activity" 
      android:icon="@drawable/logo" 
      android:title="@string/app_name" 
      android:showAsAction="ifRoom|withText" /> 
</menu> 

이 두 가지를 결합하면 두 배의 액션 바가 생깁니다 ... 어떻게 올바른 방법으로 할 수 있습니까? 내가 뭘 잘못하고 있니?.

답변

1

당신은 그 다음 액션 바에게

<style name="CustomActivityTheme" parent="@android:style/Theme.Holo.Light"> // this is telling the app to use your custom themes for the actionbar 
    <item name="android:actionBarStyle">@style/MyActionBar</item> 
</style> 

를 사용하는 사용자 지정 응용 프로그램 테마를 만들

<style name="MyActionBar" parent="@android:style/Widget.Holo.ActionBar"> 
    <item name="android:background">@drawable/bar</item> 
    <item name="android:textColor">@drawable/white</item> 
</style> 

처럼 values/styles에서의 style을 만들어 보이는 방법을 변경해야하거나 사용할 수 있습니다.

ActionBar actionBar = getActionBar(); 
actionBar.setDisplayShowCustomEnabled(true); 
actionBar.setCustomView(v); 

layout을 팽창시킨 후 사용하고 싶습니다. 어느 쪽이든, 여전히 메뉴의 기능을 얻으려면 onCreateOptionsMenu()을 무시하십시오.

+0

남자, 내 하루를 저장했습니다 :) 감사합니다. – chuckice

+0

기꺼이 도와 드리겠습니다. – codeMagic

관련 문제