I am trying to build a preference screen for my app. I have created a class called SettingsFragment which extends from PreferenceFragment. I am not loading preference items from xml because I need to load some data dynamically. That's why I am building everything programmatically. Everything is showing as expected. But there is some extra padding at the top. See the image below:

I am not sure why it's happening. Here is the code below I wrote in the SettingsFragment class:
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    PreferenceScreen root = getPreferenceManager().createPreferenceScreen(getActivity());
    root.setTitle("Hello World");
    PreferenceCategory cat1 = new PreferenceCategory(root.getContext());
    root.addPreference(cat1);
    ListPreference lang = new ListPreference(root.getContext());
    lang.setEntries(new CharSequence[]{"English", "Bangla"});
    lang.setEntryValues(new CharSequence[]{"en", "bn"});
    lang.setTitle("Choose Language");
    lang.setSummary("English");
    cat1.addPreference(lang);
    CheckBoxPreference check = new CheckBoxPreference(root.getContext());
    check.setTitle("Title Check");
    cat1.addPreference(check);
    setPreferenceScreen(root);
}
FYI, I am using NavigationDrawer in my app. This SettingsFragment loads when a navigation item is clicked from the drawer.
                        
You are trying to add a PreferenceCategory with no title, which is causing the empty space.
The following line is the problem:
So you can add title to your preference category like this :
If you don't want a preference category, you can modify your code like below: