Sheehan Alam Sheehan Alam - 5 months ago 32
Android Question

requestFeature() must be called before adding content

I am trying to implement a custom titlebar:

Here is my Helper class:

import android.app.Activity;
import android.view.Window;

public class UIHelper {
public static void setupTitleBar(Activity c) {
final boolean customTitleSupported = c.requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

c.setContentView(R.layout.main);

if (customTitleSupported) {
c.getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);
}
}
}


Here is where I call it in onCreate():

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setupUI();
}

private void setupUI(){
setContentView(R.layout.main);
UIHelper.setupTitleBar(this);
}


But I get the error:

requestFeature() must be called before adding content

Answer

Well, just do what the error message tells you.

Don't call setContentView() before requestFeature().

Note:

As said in comments, for both ActionBarSherlock and AppCompat library, it's necessary to call requestFeature() before super.onCreate()