0

私は単純な 1-Activty-Project で解決策を探しています Android でアクションバーを取得するにはどうすればよいですか?

以下を使用すると、すべてが機能しますが、レイアウトされません:

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

Javaでレイアウトパラメータを追加できるようになりました..

しかし、関数オーバーライド onCreateOptionsMenu() によって、アクションバー用に次のような .xml を定義したいと考えています。

@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>

これを組み合わせて行うと、アクションバーが2倍になります...しかし、正しい方法で行うにはどうすればよいですか? 私は何を間違っていますか..?

4

1 に答える 1

1

のようなものを作成しstyleて、外観を変更する必要がありますvalues/styles

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

次に、アクションバーを使用するカスタム アプリケーション テーマを作成します。

 <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>

または使用できます。

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

膨らませた後、layout使用したい。onCreateOptionsMenu()いずれにせよ、メニューの機能を取得するためにオーバーライドします

于 2013-05-01T23:02:31.440 に答える