Search code examples
androidandroid-actionbarandroid-titlebar

Android: Setting Custom Title/Action Bar - not working


I am trying to set a custom Title Bar as follows (please note this activity extends from FragmentActivity if it matters):

...
import android.support.v4.app.FragmentActivity;
...
public class MyActivity extends FragmentActivity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        android.app.ActionBar actionBar = this.getActionBar();
        LayoutInflater inflator = (LayoutInflater) this
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View v = inflator.inflate(R.layout.window_title, null);    
        TextView tv = (TextView) v.findViewById(R.id.titlex);    
        tv.setText("My Title");

        actionBar.setCustomView(v);                

        setContentView(R.layout.myactivity);
    }
    ...
}

But i do not see the Custom Title Bar at all, what is missing?


Solution

  • Set actionbar.setDisplayShowCustomEnabled(true); before actionBar.setCustomView(v);

    EDIT

    Here i past my code for Custom ActionBar creation

    // Action Bar Customization
        ActionBar ab =act.getActionBar();
    
        ColorDrawable colorDrawable = new ColorDrawable(act.getResources().getColor(color.ActionBar_bg));
        ab.setBackgroundDrawable(colorDrawable);
    
    
        ab.setDisplayShowTitleEnabled(false); // disables default title on
                                                // actionbar.
        ab.setDisplayShowCustomEnabled(true); // enables custom view.
        ab.setDisplayShowHomeEnabled(false); // hides app icon.
        ab.setTitle("");
        // Inflating Layout
        LayoutInflater inflater = (LayoutInflater) act.getActionBar()
                .getThemedContext().getSystemService(LAYOUT_INFLATER_SERVICE);
    
        View customActionBar = inflater.inflate(R.layout.actionbar_layout, null);
        txtUserName=(TextView)customActionBar.findViewById(R.id.txtUserName);
    
        ab.setCustomView(customActionBar);