Restore default actionbar layout

I apply a custom View to the ActionBar, like this

// 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));

(based on Roman Nuriks code).

  • Removing a View from an Activity
  • How to format a phone number using PhoneNumberUtils?
  • Android Studio - Build variants not showing up
  • Android Studio Theme editor not showing previews
  • Element ignore is not allowed here, in Android lint.xml
  • How to finish an activity from another activity
  • How do I restore the initial layout? Note: I use ActionBarSherlock

    Related posts:

    RecyclerView : get position and switch to activity
    Assets folder in Android Studio Unit Test
    Function that returns visibility
    Define macro to log error with file and line in android
    How to buffer a polyline in Android or draw a polygon around a polyline?
    Send values from ViewPager Activity to a Fragment by bundle
  • BroadcastReceiver for Android Calendar events
  • How to do page flip/turn/curl effect in android
  • Convert a Pdf page into Bitmap in Android Java
  • view.getDrawingCache() only works once
  • Simplest way to create a Singleton w/ Dagger 2?
  • Invalid column deleted while trying to query a column
  • 2 Solutions collect form web for “Restore default actionbar layout”

    Show/hide custom actionbar view

    Since you only added a custom view to the bar without removing the title it should be sufficient to hide that custom View. You can use method setDisplayShowCustomEnabled(). Just call:

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

    And enable home functionality again:

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

    (Note in all code examples use getSupportActionBar() instead of getActionBar() if you’re using actionbar compat. Also the getActivity() is only needed from fragments, in activities refer to the activity itself, in most cases this)

    Restore actionbar title

    If however you also removed the title when creating your custom view you’ll have to enable that again also.

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

    Restore completely

    You can also call the setDisplayOptions() method with a combination of options to reconfigure the actionbar in one call. The below example removes the custom view and shows the title.

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

    See Android API docs for more details on these options.

    ActionBar actionbar;
    
    actionbar = getActionBar();
    
    Button cls = (Button)findViewById(R.id.btn_close);
    
    cls.setOnClickListener(new OnClickListener(){           
        public void onClick(View view){
           actionbar.setDisplayShowCustomEnabled(false);                
       }            
    });
    

    Note:
    The button with id ‘btn_close’ was located in the custom actionbar layout.This function was written in mainactivity.

    Hope this Helps!!

    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.