【问题标题】:View pager2 in Fragment of BottomNavigation底部导航片段中的 Viewpager2
【发布时间】:2020-11-08 03:02:59
【问题描述】:
我在底部导航中有 2 个 Fragment、Frag1 和 Frag2,在 Frag1 中我通过 viewmodel(MVVM) 实现了改造,当我尝试通过 viewpager2 中的按钮将查询发送到 frag1..getactivity 为 null..also attach detach do不工作。
请提出一些方法。
【问题讨论】:
标签:
android
android-fragments
android-viewpager2
android-bottomnavigationview
【解决方案1】:
在你的 activity_main.xml 布局中实现这样的片段:
<fragment
android:id="@+id/frag1"
android:name="com.example.app.Frag1"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:layout="@layout/frag1" />
<fragment
android:id="@+id/frag2"
android:name="com.example.app.Frag2"
android:layout_width="match_parent"
android:layout_height="match_parent"
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);