底部导航片段中的 Viewpager2

Posted

技术标签:

【中文标题】底部导航片段中的 Viewpager2【英文标题】:View pager2 in Fragment of BottomNavigation 【发布时间】:2020-11-08 03:02:59 【问题描述】:

我在底部导航中有 2 个 Fragment、Frag1 和 Frag2,在 Frag1 中我通过 viewmodel(MVVM) 实现了改造,当我尝试通过 viewpager2 中的按钮将查询发送到 frag1..getactivity 为 null..also attach detach do不工作。

请提出一些方法。

【问题讨论】:

请添加您的代码以便我们提供帮助 请添加代码 我在这里发布了新问题中的代码:***.com/questions/62970958/… 【参考方案1】:

在你的 activity_main.xml 布局中实现这样的片段:

<fragment
            android:id="@+id/frag1"
            android:name="com.example.app.Frag1"
            android:layout_
            android:layout_
            tools:layout="@layout/frag1" />
<fragment
            android:id="@+id/frag2"
            android:name="com.example.app.Frag2"
            android:layout_
            android:layout_
            tools:layout="@layout/frag2" />

现在在您的 MainActivity.java 文件中:

FragmentManager manager;
Frag1 frag1;
Frag2 frag2;

@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    manager = getSupportFragmentManager();

    frag1 = (Frag1) manager.findFragmentById(R.id.frag1);
    frag2 = (Frag1) manager.findFragmentById(R.id.frag2);


public void sendToFrag1(Object data)
    frag1.reciveDataHere(data);

在您的 Frag1.java 片段中:

public void recieveDataHere(Object data)
    //you get data here

发送数据:

((MainActivity) getActivity()).sendToFrag1(data);

或 ((MainActivity) getContext()).sendToFrag1(data);

【讨论】:

以上是关于底部导航片段中的 Viewpager2的主要内容,如果未能解决你的问题,请参考以下文章

如何为导航到实现底部导航栏的活动中的上一个片段进行后推操作?

如何在底部导航片段(或导航抽屉)之间传递数据?

底部导航栏的 Oncreate 视图问题

底部导航视图中的每个选项卡单击都会重新加载片段

通过底部导航栏更改片段时恢复片段状态

如何在android中使用底部导航视图时恢复片段状态?