Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
306 views
in Technique[技术] by (71.8m points)

android - Inter-fragment communication applied to Nested Fragments?

The Android developers site has a great article on how to use interfaces to communicate between:

  1. A Fragment and its hosting Activity
  2. Two Fragments hosted by the same Activity

I am struggling to apply this concept to nested fragments. In particular, getActivity() or Fragment#onAttach(Activity) tell you what Activity is hosting a Fragment.

What is the equivalent in case of nested fragments? How does a "child" Fragment know what "parent" Fragment it is included in? And without knowing this, how can a child Fragment pass events up to its parent Fragment?

An obvious way is to broadcast intents from the child Fragment and have the parent Fragment listen for the broadcast, but I'd rather use the interface-based approach.

question from:https://stackoverflow.com/questions/14831690/inter-fragment-communication-applied-to-nested-fragments

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

It turns out there is a getParentFragment() method introduced to cater to nested fragments. It is available on android.app.Fragment from API 17, but can be used on older versions using android.support.v4.app.Fragment.

I can't believe I overlooked this API!

EDIT:

I came across this gist that makes this process of figuring out the parent component (whether Fragment or Activity) easy, elegant and safe!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...