LeanbackSettingsFragment
public
abstract
class
LeanbackSettingsFragment
extends Fragment
implements
PreferenceFragment.OnPreferenceStartFragmentCallback,
PreferenceFragment.OnPreferenceStartScreenCallback,
PreferenceFragment.OnPreferenceDisplayDialogCallback
| java.lang.Object | ||
| ↳ | android.app.Fragment | |
| ↳ | androidx.leanback.preference.LeanbackSettingsFragment | |
This class is deprecated.
Use LeanbackSettingsFragmentCompat
This fragment provides a container for displaying a LeanbackPreferenceFragment
The following sample code shows a simple leanback preference fragment that is populated from a resource. The resource it loads is:
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<PreferenceCategory
android:title="@string/basic_preferences">
<Preference
android:key="preference"
android:title="@string/title_basic_preference"
android:summary="@string/summary_basic_preference"/>
<Preference
android:key="stylized"
android:title="@string/title_stylish_preference"
android:summary="@string/summary_stylish_preference"/>
<Preference
android:key="icon"
android:title="@string/title_icon_preference"
android:summary="@string/summary_icon_preference"
android:icon="@android:drawable/ic_menu_camera"/>
<Preference
android:key="single_line_title"
android:title="@string/title_single_line_title_preference"
android:summary="@string/summary_single_line_title_preference"
app:singleLineTitle="true"/>
</PreferenceCategory>
<PreferenceCategory
android:title="@string/widgets">
<CheckBoxPreference
android:key="checkbox"
android:title="@string/title_checkbox_preference"
android:summary="@string/summary_checkbox_preference"/>
<SwitchPreferenceCompat
android:key="switch"
android:title="@string/title_switch_preference"
android:summary="@string/summary_switch_preference"/>
<DropDownPreference
android:key="dropdown"
android:title="@string/title_dropdown_preference"
android:entries="@array/entries"
app:useSimpleSummaryProvider="true"
android:entryValues="@array/entry_values"/>
<SeekBarPreference
android:key="seekbar"
android:title="@string/title_seekbar_preference"
android:max="10"
android:defaultValue="5"/>
</PreferenceCategory>
<PreferenceCategory
android:title="@string/dialogs">
<EditTextPreference
android:key="edittext"
android:title="@string/title_edittext_preference"
app:useSimpleSummaryProvider="true"
android:dialogTitle="@string/dialog_title_edittext_preference"/>
<ListPreference
android:key="list"
android:title="@string/title_list_preference"
app:useSimpleSummaryProvider="true"
android:entries="@array/entries"
android:entryValues="@array/entry_values"
android:dialogTitle="@string/dialog_title_list_preference"/>
<MultiSelectListPreference
android:key="multi_select_list"
android:title="@string/title_multi_list_preference"
android:summary="@string/summary_multi_list_preference"
android:entries="@array/entries"
android:entryValues="@array/entry_values"
android:dialogTitle="@string/dialog_title_multi_list_preference"/>
</PreferenceCategory>
<PreferenceCategory
android:key="advanced"
android:title="@string/advanced_attributes"
app:initialExpandedChildrenCount="1">
<Preference
android:key="expandable"
android:title="@string/title_expandable_preference"
android:summary="@string/summary_expandable_preference"/>
<Preference
android:title="@string/title_intent_preference"
android:summary="@string/summary_intent_preference">
<intent android:action="android.intent.action.VIEW"
android:data="http://www.android.com"/>
</Preference>
<SwitchPreferenceCompat
android:key="parent"
android:title="@string/title_parent_preference"
android:summary="@string/summary_parent_preference"/>
<SwitchPreferenceCompat
android:key="child"
android:dependency="parent"
android:title="@string/title_child_preference"
android:summary="@string/summary_child_preference"/>
<SwitchPreferenceCompat
android:key="toggle_summary"
android:title="@string/title_toggle_summary_preference"
android:summaryOn="@string/summary_on_toggle_summary_preference"
android:summaryOff="@string/summary_off_toggle_summary_preference"/>
<Preference
android:key="copyable"
android:title="@string/title_copyable_preference"
android:summary="@string/summary_copyable_preference"
android:selectable="false"
app:enableCopying="true"/>
</PreferenceCategory>
</PreferenceScreen>
The sample implements
PreferenceFragment.OnPreferenceStartFragmentCallback.onPreferenceStartFragment(PreferenceFragment, Preference),
PreferenceFragment.OnPreferenceStartScreenCallback.onPreferenceStartScreen(PreferenceFragment, PreferenceScreen),
and onPreferenceStartInitialScreen():
public static class SettingsFragment extends LeanbackSettingsFragmentCompat {
@Override
public void onPreferenceStartInitialScreen() {
startPreferenceFragment(new DemoFragment());
}
@Override
public boolean onPreferenceStartFragment(PreferenceFragmentCompat caller, Preference pref) {
final Bundle args = pref.getExtras();
final Fragment f = getChildFragmentManager().getFragmentFactory().instantiate(
requireActivity().getClassLoader(), pref.getFragment());
f.setArguments(args);
f.setTargetFragment(caller, 0);
if (f instanceof PreferenceFragmentCompat
|| f instanceof PreferenceDialogFragmentCompat) {
startPreferenceFragment(f);
} else {
startImmersiveFragment(f);
}
return true;
}
@Override
public boolean onPreferenceStartScreen(PreferenceFragmentCompat caller,
PreferenceScreen pref) {
final Fragment fragment = new DemoFragment();
final Bundle args = new Bundle(1);
args.putString(PreferenceFragmentCompat.ARG_PREFERENCE_ROOT, pref.getKey());
fragment.setArguments(args);
startPreferenceFragment(fragment);
return true;
}
}
/**
* The fragment that is embedded in SettingsFragment
*/
public static class DemoFragment extends LeanbackPreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
// Load the preferences from an XML resource
setPreferencesFromResource(R.xml.preferences, rootKey);
}
}
Summary
Inherited constants |
|---|
Public constructors | |
|---|---|
LeanbackSettingsFragment()
|
|
Public methods | |
|---|---|
View
|
onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
|
void
|
onPause()
|
boolean
|
onPreferenceDisplayDialog(PreferenceFragment caller, Preference pref)
|
abstract
void
|
onPreferenceStartInitialScreen()
Called to instantiate the initial |
void
|
onResume()
|
void
|
onViewCreated(View view, Bundle savedInstanceState)
|
void
|
startImmersiveFragment(Fragment fragment)
Displays a fragment to the user, temporarily replacing the contents of this fragment. |
void
|
startPreferenceFragment(Fragment fragment)
Displays a preference fragment to the user. |
Inherited methods | |
|---|---|
Public constructors
LeanbackSettingsFragment
public LeanbackSettingsFragment ()
Public methods
onCreateView
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
| Parameters | |
|---|---|
inflater |
LayoutInflater |
container |
ViewGroup |
savedInstanceState |
Bundle |
| Returns | |
|---|---|
View |
|
onPause
public void onPause ()
onPreferenceDisplayDialog
public boolean onPreferenceDisplayDialog (PreferenceFragment caller, Preference pref)
| Parameters | |
|---|---|
caller |
PreferenceFragment |
pref |
Preference |
| Returns | |
|---|---|
boolean |
|
onPreferenceStartInitialScreen
public abstract void onPreferenceStartInitialScreen ()
Called to instantiate the initial PreferenceFragment
to be shown in this fragment. Implementations are expected to call
startPreferenceFragment(android.app.Fragment).
onResume
public void onResume ()
onViewCreated
public void onViewCreated (View view, Bundle savedInstanceState)
| Parameters | |
|---|---|
view |
View |
savedInstanceState |
Bundle |
startImmersiveFragment
public void startImmersiveFragment (Fragment fragment)
Displays a fragment to the user, temporarily replacing the contents of this fragment.
| Parameters | |
|---|---|
fragment |
Fragment: Fragment instance to be added.
|
startPreferenceFragment
public void startPreferenceFragment (Fragment fragment)
Displays a preference fragment to the user. This method can also be used to display list-style fragments on top of the stack of preference fragments.
| Parameters | |
|---|---|
fragment |
Fragment: Fragment instance to be added.
|