当我在日历视图上选择一个月时,或者当我旋转屏幕时,我丢失了“暂停”片段。但是当我开始滑动时,所有片段都再次正常运行。我想这与我的应用程序的生命周期有关,但我很难找到如何解决这个问题。
我也在使用
android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"
在我的清单中,以保持我的一个碎片上的按钮状态。
我错过了什么?
最后,这:
binding.activityMainViewpager.setOffscreenPageLimit(2);
已经解决了我的问题的其余部分^^”
您可以在android中使用savedInstanceState
或viewModel
(我建议第一个使用)。因此,viewPager有viewPager。onPageChangeListener
(参考此SO答案https://stackoverflow.com/a/11294494/12649627). 所以,基本上您的活动或片段应该如下所示
Java解决方案:
public class MyFragment extends Fragment {
private int pagerPosition = 0;
private final static String PAGER_POSITION_TAG = "PAGER_POSITION_TAG";
private ViewPager2 myViewPager;
private ViewPager2.OnPageChangeCallback callback = new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
pagerPosition = position;
}
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
if (savedInstanceState != null) {
pagerPosition = savedInstanceState.getInt(PAGER_POSITION_TAG, 0);
}
return inflater.inflate(R.layout.my_fragment, container, false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
myViewPager = view.findViewById(R.id.my_view_pager);
myViewPager.setCurrentItem(pagerPosition);
myViewPager.registerOnPageChangeCallback(callback);
}
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt(PAGER_POSITION_TAG, pagerPosition);
}
@Override
public void onDestroy() {
super.onDestroy();
myViewPager.unregisterOnPageChangeCallback(callback);
}
}
注:我发现有一种称为registerOnPageChangeCallback
和unregisterOnPageChangeCallback
的方法。所以我用了那些。忽略以上代码。
我在AWS EC2上运行3个节点集群,我的一个节点崩溃了,重新启动后,我看到2900个未分配的碎片和集群状态为红色。 我将索引配置为有5个碎片和1个副本--我不明白为什么重新启动后碎片不能从副本中恢复。 我尝试使用elasticsearch重新路由API https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-
问题内容: 我今天犯了升级Eclipse的错误,现在无法启动新的Android项目。 我收到消息Proguard.cfg(找不到文件)。 我似乎在哪里找不到这东西?是否有可能摆脱它我在这个项目中不需要混淆… 谢谢 问题答案: 如果您确实不需要Proguard来混淆发行版,则可以从项目根文件夹的default.properties文件中删除以下行: proguard.config = proguar
我有一个活动,它在onCreate中加载一个片段(比如Fragment1)。当用户按下Fragment1中的按钮时,我用一个新片段替换Fragment1,比如Fragment2。问题是,在Fragment2中更改方向时,会重新创建活动,并显示Fragment1而不是Fragment2。(因为我在onCreate中创建了Fragment1)我如何坚持Fragment2并在方向更改时保持其状态? 谢谢
问题内容: 我在MySQL中有此表,例如: 如果您注意到,则没有ID号(2、3和5)。 如何编写查询,以便MySQL仅回答缺少的ID,在这种情况下为“ 2,3,5”? 问题答案: 希望此链接也对http://www.codediesel.com/mysql/sequence-gaps-in- mysql/有 帮助
问题内容: 我想在我的网站上使用,但得到以下信息: 我试过打印。输出以下内容: 谁能帮助我找到或建议替代方案? 问题答案: 从文档中: 页面(如果有的话)的地址,该页面将用户代理引至当前页面。这是由用户代理设置的。并非所有的用户代理都将设置此功能,有些用户代理提供了将HTTP_REFERER修改为功能的功能。简而言之,它不能真正被信任。
问题内容: 我目前正在一个小项目上使用RPi 3B(最新的Raspbian Jessie),该项目涉及播放简短的.mp4文件。由于Pygame似乎支持播放.mpg文件,因此我将视频转换为该格式。 但是,当我尝试导入movie模块时,出现了常见的python导入错误: 经过研究,我发现其他人也遇到了与此处所述相同的问题。我真的不知道是否有解决方案,或者我在RPi上有什么替代方案。 Pygame,py