I have to refresh the fragments contents on change of language from one fragment. So I thought of using onConfigurationChange method which is in my Main activity (this activity controls all the fragments) and recreate all the fragments on change of locale. But this method is not being called on change of locale.
I have included locale under the activity tag of manifest file. onConfigurationChange is being called on change of orientation.
i am changing language as given in this link Change language programmatically in Android and its working.
Can someone please clarify what change would be required to fix this issue.
You can extend from Application and set it in the manifest. Then, put onConfigurationChanged there, and check if the previous locale is the same as the current one:
The "_currentLocale" variable should be initialized on the onCreate method of the new class (that extends Application), as such:
user layoutDirection attribute in manifest
For others who encounter this issue the OP was right but a bit unclear.
You have to define
android:configChanges="layoutDirection|locale"
in order foronConfigurationChanged()
to be called.I assume that this is necessary because locale change might also affect layout direction (for RTL languages) so declaring just locale might not be enough, yet this is only my assumption on this matter.