Get fragment's container view id

Viewed 81117

I have a fragment added using

transaction.add(R.id.content, fragment, null);

and I need to start new fragment from this one. But to do this I need to know first fragment's container view id (R.id.content in my case). How can I get this?

I can just use this id directly but I suppose fragment shouldn't know such kind of details about parent activity. For example it will be impossible to use this fragment in another activity in this case.

May be "starting" fragment from another one is a bad practice and all fragment handling logic should be handled by activity itself? But creating nice sequences of fragments starting each other seems quite useful (for example detalView->moreDetailView->evenMoreDetailView).

5 Answers

The Kotlin version

val container = view?.parent as? ViewGroup ?: return

It can be added to a "hand-dandy" extension:

fun Fragment.container(): ViewGroup? {
    return view?.parent as? ViewGroup
}

Then get the id

container.id
container().id
Related