如何从导航组件中的子片段访问父片段的视图

How to access a view of parent fragment from child fragment in navigation component

我需要从子片段访问父片段的视图。

我在片段(我的父片段)中有一个图,我想从子片段访问父片段中存在的视图,我正在使用 android 导航组件,这让我很困惑一点点。

试试这个:

ParentFragment parent = (ParentFragment) getParentFragment();
parent.getView().findViewById(R.id.your_element);

试试这个:

public class Fragment2 extends Fragment {
    View view;
    ...
    ...

    public void setView(View view) {
        this.view = view;
    }
}

并在调用片段交易前调用mFragment.setView()。希望对您有所帮助!

当我阅读您的解释时,您知道 ChildFragment Parent 是 NavHostFragment 而 NavHostFragment 的 Parent 是 ParentFragment。

NavHostFragment navHostFragment = (NavHostFragment) getParentFragment();
Fragment parent = (Fragment) navHostFragment.getParentFragment();
parent.getView().findViewById(R.id.element_id);

我已经尝试过我的演示项目并且对我有用。

使用Activity:

val buttonView = (context as Activity).findViewById<View>(R.id.map_list_card_view)

使用片段:

val parent: Fragment? = (parentFragment as NavHostFragment).parentFragment
val buttonView = parent?.view?.findViewById<View>(R.id.map_list_card_view)