11

このようににカスタムを適用しViewますActionBar

// Inflate the "Done/Discard" custom ActionBar view.
LayoutInflater inflater = (LayoutInflater) DetailsHost.mActionBar
        .getThemedContext().getSystemService(DetailsHost.LAYOUT_INFLATER_SERVICE);
final View customActionBarView = inflater.inflate(
        R.layout.actionbar_custom_view_done_discard, null);

// Show the custom ActionBar view and hide the normal Home icon and title.
DetailsHost.mActionBar.setDisplayOptions(
        ActionBar.DISPLAY_SHOW_CUSTOM,
        ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME
                | ActionBar.DISPLAY_SHOW_TITLE);
DetailsHost.mActionBar.setCustomView(customActionBarView, 
        new ActionBar.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.MATCH_PARENT));

(Roman Nuriks コードに基づく)。

初期レイアウトを復元するにはどうすればよいですか? 注:私はActionBarSherlockを使用しています

4

2 に答える 2

29

カスタム アクションバー ビューの表示/非表示

タイトルを削除せずにバーにカスタム ビューを追加しただけなので、そのカスタムを非表示にするだけで十分Viewです。メソッドを使用できますsetDisplayShowCustomEnabled()。ただ電話してください:

getActivity().getActionBar().setDisplayShowCustomEnabled(false);

ホーム機能を再度有効にします。

getActivity().getActionBar().setDisplayShowHomeEnabled(true);

(すべてのコード例で、actionbar compat を使用している場合getSupportActionBar()の代わりに使用することに注意してください。また、はフラグメントからのみ必要です。アクティビティでは、ほとんどの場合、アクティビティ自体を参照します)getActionBar()getActivity()this

アクションバーのタイトルを元に戻す

ただし、カスタム ビューの作成時にタイトルも削除した場合は、それも再度有効にする必要があります。

getActivity().getActionBar().setDisplayShowTitleEnabled(true);

完全に復元

オプションを組み合わせて setDisplayOptions() メソッドを呼び出して、1 回の呼び出しでアクションバーを再構成することもできます。以下の例では、カスタム ビューを削除し、タイトルを表示しています。

getActivity().getActionBar().setDisplayOptions(
    ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);

これらのオプションの詳細については、Android API ドキュメントを参照してください。

于 2012-12-14T20:16:26.650 に答える
2
ActionBar actionbar;

actionbar = getActionBar();

Button cls = (Button)findViewById(R.id.btn_close);

cls.setOnClickListener(new OnClickListener(){           
    public void onClick(View view){
       actionbar.setDisplayShowCustomEnabled(false);                
   }            
});

注: ID が「btn_close」のボタンは、カスタム アクションバー レイアウトに配置されていました。この関数は mainactivity で作成されました。

お役に立てれば!!

于 2016-09-19T13:03:09.243 に答える