Recently I discovered what is AppCompatDelegate so a natural question arises - is it worse than using AppCompatActivity or do they have their differences and what are they?
AppCompatActivity(int contentLayoutId) Alternate constructor that can be used to provide a default layout that will be inflated as part of super. onCreate(savedInstanceState) .
androidx.appcompat.app.AppCompatDelegate. This class represents a delegate which you can use to extend AppCompat's support to any Activity . When using an AppCompatDelegate , you should call the following methods instead of the Activity method of the same name: addContentView(android. view.
At the time of this writing (check the link to confirm it is still true), the Android Documentation recommends using AppCompatActivity if you are using an App Bar. This is the rational given: Beginning with Android 3.0 (API level 11), all activities that use the default theme have an ActionBar as an app bar.
If your activity class is not extending AppCompatActivity but you still want to use some of its features then you can you AppCompatDelegate.
You can create Appcompatdelegate with following lines of code in your activity class:
private AppCompatDelegate getDelegate() {
if (mDelegate == null) {
mDelegate = AppCompatDelegate.create(this, null);
}
return mDelegate;
}
Here is the example if you want to add Toolbar in your activity but your class is not extending AppCompatActivity.
https://medium.com/google-developer-experts/how-to-add-toolbar-to-an-activity-which-doesn-t-extend-appcompatactivity-a07c026717b3
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With