Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

AppCompatDelegate

abstract class AppCompatDelegate
kotlin.Any
   ↳ androidx.appcompat.app.AppCompatDelegate

This class represents a delegate which you can use to extend AppCompat's support to any android.app.Activity.

When using an AppCompatDelegate, you should call the following methods instead of the android.app.Activity method of the same name:

The following methods should be called from the android.app.Activity method of the same name:

An Activity can only be linked with one AppCompatDelegate instance, therefore the instance returned from create(Activity, AppCompatCallback) should be retained until the Activity is destroyed.

Summary

Constants
static Int

Flag for specifying the behavior of action modes when an Action Bar is not present.

static Int

Flag for enabling the support Action Bar.

static Int

Flag for requesting an support Action Bar that overlays window content.

static Int

static Int

Night mode which uses a dark mode when the system's 'Battery Saver' feature is enabled, otherwise it uses a 'light mode'.

static Int

Night mode which switches between dark and light mode depending on the time of day (dark at night, light in the day).

static Int

Mode which uses the system's night mode setting to determine if it is night or not.

static Int

Night mode which uses always uses a light mode, enabling notnight qualified resources regardless of the time.

static Int

An unspecified mode for night mode.

static Int

Night mode which uses always uses a dark mode, enabling night qualified resources regardless of the time.

Public methods
abstract Unit

Should be called instead of Activity#addContentView(android.view.View, android.view.ViewGroup.LayoutParams)}

abstract Boolean

Applies the currently selected night mode to this delegate's host component.

open Unit

open Context
attachBaseContext2(@NonNull context: Context)

Should be called from Activity#attachBaseContext(Context).

open static AppCompatDelegate
create(@NonNull activity: Activity, @Nullable callback: AppCompatCallback?)

Create an androidx.appcompat.app.AppCompatDelegate to use with activity.

open static AppCompatDelegate
create(@NonNull dialog: Dialog, @Nullable callback: AppCompatCallback?)

Create an androidx.appcompat.app.AppCompatDelegate to use with dialog.

open static AppCompatDelegate
create(@NonNull context: Context, @NonNull window: Window, @Nullable callback: AppCompatCallback?)

Create an androidx.appcompat.app.AppCompatDelegate to use with a context and a window.

open static AppCompatDelegate
create(@NonNull context: Context, @NonNull activity: Activity, @Nullable callback: AppCompatCallback?)

Create an androidx.appcompat.app.AppCompatDelegate to use with a context and hosted by an Activity.

abstract View!
createView(@Nullable parent: View?, name: String!, @NonNull context: Context, @NonNull attrs: AttributeSet)

This should be called from a LayoutInflater.Factory2 in order to return tint-aware widgets.

abstract T?
findViewById(@IdRes id: Int)

Finds a view that was identified by the id attribute from the XML that was processed in onCreate.

open static Int

Returns the default night mode.

abstract ActionBarDrawerToggle.Delegate?

Returns an ActionBarDrawerToggle.Delegate which can be returned from your Activity if it implements ActionBarDrawerToggle.DelegateProvider.

open Int

Returns the night mode previously set via getLocalNightMode().

abstract MenuInflater!

Return the value of this call from your Activity#getMenuInflater()

abstract ActionBar?

Support library version of Activity#getActionBar.

abstract Boolean
hasWindowFeature(featureId: Int)

Query for the availability of a certain feature.

abstract Unit

Installs AppCompat's android.view.LayoutInflater Factory so that it can replace the framework widgets with compatible tinted versions.

abstract Unit

Should be called from Activity#invalidateOptionsMenu()} or FragmentActivity#supportInvalidateOptionsMenu().

open static Boolean

Returns whether vector drawables on older platforms (< API 21) can be accessed from within resources.

abstract Boolean

Returns whether AppCompat handles any native action modes itself.

abstract Unit

Should be called from Activity#onConfigurationChanged

abstract Unit
onCreate(savedInstanceState: Bundle!)

Should be called from Activity#onCreate.

abstract Unit

Should be called from Activity#onDestroy()

abstract Unit
onPostCreate(savedInstanceState: Bundle!)

Should be called from Activity#onPostCreate(android.os.Bundle)

abstract Unit

Should be called from Activity#onPostResume()

abstract Unit

Allows AppCompat to save instance state.

abstract Unit

Should be called from Activity#onStart() Activity.

abstract Unit

Should be called from Activity.onStop()

abstract Boolean

Enable extended window features.

open static Unit

Sets whether vector drawables on older platforms (< API 21) can be used within android.graphics.drawable.DrawableContainer resources.

abstract Unit

Should be called instead of Activity#setContentView(android.view.View)}

abstract Unit
setContentView(@LayoutRes resId: Int)

Should be called instead of Activity#setContentView(int)}

abstract Unit

Should be called instead of Activity#setContentView(android.view.View, android.view.ViewGroup.LayoutParams)}

open static Unit

Sets the default night mode.

abstract Unit

Whether AppCompat handles any native action modes itself.

abstract Unit

Override the night mode used for this delegate's host component.

abstract Unit
setSupportActionBar(@Nullable toolbar: Toolbar?)

Set a Toolbar to act as the ActionBar for this delegate.

open Unit
setTheme(@StyleRes themeResId: Int)

This should be called from Activity#setTheme(int) to notify AppCompat of what the current theme resource id is.

abstract Unit
setTitle(@Nullable title: CharSequence?)

Should be called from Activity#onTitleChanged(CharSequence, int)}

abstract ActionMode?

Start an action mode.

Constants

FEATURE_ACTION_MODE_OVERLAY

static val FEATURE_ACTION_MODE_OVERLAY: Int

Flag for specifying the behavior of action modes when an Action Bar is not present. If overlay is enabled, the action mode UI will be allowed to cover existing window content.

Value: WindowCompat.FEATURE_ACTION_MODE_OVERLAY

FEATURE_SUPPORT_ACTION_BAR

static val FEATURE_SUPPORT_ACTION_BAR: Int

Flag for enabling the support Action Bar.

This is enabled by default for some devices. The Action Bar replaces the title bar and provides an alternate location for an on-screen menu button on some devices.

Value: 100 + WindowCompat.FEATURE_ACTION_BAR

FEATURE_SUPPORT_ACTION_BAR_OVERLAY

static val FEATURE_SUPPORT_ACTION_BAR_OVERLAY: Int

Flag for requesting an support Action Bar that overlays window content. Normally an Action Bar will sit in the space above window content, but if this feature is requested along with FEATURE_SUPPORT_ACTION_BAR it will be layered over the window content itself. This is useful if you would like your app to have more control over how the Action Bar is displayed, such as letting application content scroll beneath an Action Bar with a transparent background or otherwise displaying a transparent/translucent Action Bar over application content.

This mode is especially useful with View.SYSTEM_UI_FLAG_FULLSCREEN, which allows you to seamlessly hide the action bar in conjunction with other screen decorations. When an ActionBar is in this mode it will adjust the insets provided to View.fitSystemWindows(Rect) to include the content covered by the action bar, so you can do layout within that space.

Value: 100 + WindowCompat.FEATURE_ACTION_BAR_OVERLAY

MODE_NIGHT_AUTO

static val MODE_NIGHT_AUTO: Int

Deprecated: Use AppCompatDelegate#MODE_NIGHT_AUTO_TIME instead

Value: MODE_NIGHT_AUTO_TIME

MODE_NIGHT_AUTO_BATTERY

static val MODE_NIGHT_AUTO_BATTERY: Int

Night mode which uses a dark mode when the system's 'Battery Saver' feature is enabled, otherwise it uses a 'light mode'. This mode can help the device to decrease power usage, depending on the display technology in the device. Please note: this mode should only be used when running on devices which do not provide a similar device-wide setting.

Value: 3

MODE_NIGHT_AUTO_TIME

static val MODE_NIGHT_AUTO_TIME: Int

Deprecated: Automatic switching of dark/light based on the current time is deprecated. Considering using an explicit setting, or MODE_NIGHT_AUTO_BATTERY.

Night mode which switches between dark and light mode depending on the time of day (dark at night, light in the day).

The calculation used to determine whether it is night or not makes use of the location APIs (if this app has the necessary permissions). This allows us to generate accurate sunrise and sunset times. If this app does not have permission to access the location APIs then we use hardcoded times which will be less accurate.

Value: 0

MODE_NIGHT_FOLLOW_SYSTEM

static val MODE_NIGHT_FOLLOW_SYSTEM: Int

Mode which uses the system's night mode setting to determine if it is night or not.

Value: -1

MODE_NIGHT_NO

static val MODE_NIGHT_NO: Int

Night mode which uses always uses a light mode, enabling notnight qualified resources regardless of the time.

Value: 1

MODE_NIGHT_UNSPECIFIED

static val MODE_NIGHT_UNSPECIFIED: Int

An unspecified mode for night mode. This is primarily used with setLocalNightMode(int), to allow the default night mode to be used. If both the default and local night modes are set to this value, then the default value of MODE_NIGHT_FOLLOW_SYSTEM is applied.

Value: -100

MODE_NIGHT_YES

static val MODE_NIGHT_YES: Int

Night mode which uses always uses a dark mode, enabling night qualified resources regardless of the time.

Value: 2

Public methods

addContentView

abstract fun addContentView(
    v: View!,
    lp: LayoutParams!
): Unit

Should be called instead of Activity#addContentView(android.view.View, android.view.ViewGroup.LayoutParams)}

applyDayNight

abstract fun applyDayNight(): Boolean

Applies the currently selected night mode to this delegate's host component.

This enables the family of themes to work, using the specified mode.

You can be notified when the night changes by overriding the AppCompatActivity#onNightModeChanged(int) method.

Return
Boolean true if the night mode was applied, false if not

attachBaseContext

open fun attachBaseContext(context: Context!): Unit

Deprecated: use attachBaseContext2(Context) instead.

attachBaseContext2

@NonNull @CallSuper open fun attachBaseContext2(@NonNull context: Context): Context

Should be called from Activity#attachBaseContext(Context).

create

@NonNull open static fun create(
    @NonNull activity: Activity,
    @Nullable callback: AppCompatCallback?
): AppCompatDelegate

Create an androidx.appcompat.app.AppCompatDelegate to use with activity.

Parameters
callback AppCompatCallback?: An optional callback for AppCompat specific events

create

@NonNull open static fun create(
    @NonNull dialog: Dialog,
    @Nullable callback: AppCompatCallback?
): AppCompatDelegate

Create an androidx.appcompat.app.AppCompatDelegate to use with dialog.

Parameters
callback AppCompatCallback?: An optional callback for AppCompat specific events

create

@NonNull open static fun create(
    @NonNull context: Context,
    @NonNull window: Window,
    @Nullable callback: AppCompatCallback?
): AppCompatDelegate

Create an androidx.appcompat.app.AppCompatDelegate to use with a context and a window.

Parameters
callback AppCompatCallback?: An optional callback for AppCompat specific events

create

@NonNull open static fun create(
    @NonNull context: Context,
    @NonNull activity: Activity,
    @Nullable callback: AppCompatCallback?
): AppCompatDelegate

Create an androidx.appcompat.app.AppCompatDelegate to use with a context and hosted by an Activity.

Parameters
callback AppCompatCallback?: An optional callback for AppCompat specific events

createView

abstract fun createView(
    @Nullable parent: View?,
    name: String!,
    @NonNull context: Context,
    @NonNull attrs: AttributeSet
): View!

This should be called from a LayoutInflater.Factory2 in order to return tint-aware widgets.

This is only needed if you are using your own LayoutInflater factory, and have therefore not installed the default factory via installViewFactory().

findViewById

@Nullable abstract fun <T : View!> findViewById(@IdRes id: Int): T?

Finds a view that was identified by the id attribute from the XML that was processed in onCreate.

Return
T? The view if found or null otherwise.

getDefaultNightMode

open static fun getDefaultNightMode(): Int

Returns the default night mode.

getDrawerToggleDelegate

@Nullable abstract fun getDrawerToggleDelegate(): ActionBarDrawerToggle.Delegate?

Returns an ActionBarDrawerToggle.Delegate which can be returned from your Activity if it implements ActionBarDrawerToggle.DelegateProvider.

getLocalNightMode

open fun getLocalNightMode(): Int

Returns the night mode previously set via getLocalNightMode().

getMenuInflater

abstract fun getMenuInflater(): MenuInflater!

Return the value of this call from your Activity#getMenuInflater()

getSupportActionBar

@Nullable abstract fun getSupportActionBar(): ActionBar?

Support library version of Activity#getActionBar.

Return
ActionBar? AppCompat's action bar, or null if it does not have one.

hasWindowFeature

abstract fun hasWindowFeature(featureId: Int): Boolean

Query for the availability of a certain feature.

This should be called instead of android.view.Window#hasFeature(int).

Parameters
featureId Int: The feature ID to check
Return
Boolean true if the feature is enabled, false otherwise.

installViewFactory

abstract fun installViewFactory(): Unit

Installs AppCompat's android.view.LayoutInflater Factory so that it can replace the framework widgets with compatible tinted versions. This should be called before super.onCreate() as so:

protected void onCreate(Bundle savedInstanceState) {
          getDelegate().installViewFactory();
          getDelegate().onCreate(savedInstanceState);
          super.onCreate(savedInstanceState);
     
          // ...
      }
      
If you are using your own Factory or Factory2 then you can omit this call, and instead call createView(android.view.View, String, android.content.Context, android.util.AttributeSet) from your factory to return any compatible widgets.

invalidateOptionsMenu

abstract fun invalidateOptionsMenu(): Unit

Should be called from Activity#invalidateOptionsMenu()} or FragmentActivity#supportInvalidateOptionsMenu().

isCompatVectorFromResourcesEnabled

open static fun isCompatVectorFromResourcesEnabled(): Boolean

Returns whether vector drawables on older platforms (< API 21) can be accessed from within resources.

isHandleNativeActionModesEnabled

abstract fun isHandleNativeActionModesEnabled(): Boolean

Returns whether AppCompat handles any native action modes itself.

Return
Boolean true if AppCompat should handle native action modes.

onConfigurationChanged

abstract fun onConfigurationChanged(