如何从导航组件中的子片段访问父片段的视图
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)
我需要从子片段访问父片段的视图。
我在片段(我的父片段)中有一个图,我想从子片段访问父片段中存在的视图,我正在使用 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)