I have a fragment which has its own state (selected buttons, etc). That state is lost on a screen rotation.
The activity that contains the fragment has a portrait la
If the fragment needs a different layout resource when rotated, setRetainInstance(true) cannot be used. This page shows the lifecycle of fragment with setRetainInstance(true).
Original idea is use onSaveInstanceState() to retain all members data, just like a regular Activity. However, for some reason, onSaveInstanceState() is not get called. But FragmentActivity is correct, as @Eric Kok suggested). The best solution I found is to use Arguments of Fragment.
See the solution by Fyodor Volchyok, it is simple. Just work as if the outState in onSaveInstanceState(), and savedInstanceState in onViewCreated().