android - 刷新时如何阻止选项卡式视图上的片段闪烁?
问题描述
我有主要用于查看文档的应用程序。文档显示在 html WebView 中,并且可以放置在选项卡式视图中,因此用户可以向左/向右滑动以查看当前页面上的文档。
用户可以选择更改他们正在查看的文档的文本大小和外观(夜间、浅色和棕褐色模式),因此基本上是与 kindle 外观编辑器相同的想法的更简单版本。外观选项作为当前文档的弹出窗口出现。我希望他们能够选择一个选项并立即看到变化。
正如我的应用程序现在一样,当用户选择其中一个外观选项时,所有片段都将使用以下代码“刷新”。当前活动上的所有页面都成功更新,这样我就可以通过选项卡式视图在文档之间滑动,并查看所有这些页面中的选定更改。我的实现问题是“刷新”导致当前片段/活动“闪烁”。我相信这是由于在当前活动上分离、附加然后提交片段。
贝娄是我目前的刷新实现......
/***********************************************************************************************
* Refreshes all the fragments (tabs) of the current Document activity.
***********************************************************************************************/
public void refreshAll()
{
final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
SparseArray<Fragment> fragmentSparseArray = adapter.getRegisteredFragment();
for(int i = 0; i < fragmentSparseArray.size(); i++)
{
ft.detach(fragmentSparseArray.get(i));
ft.attach(fragmentSparseArray.get(i));
}
ft.commit();
}
这是我尝试过的...
我试过用...替换分离和附加
ft.replace(R.id.htmlView, fragementSparceArray.get(i), "htmlView")
但我无法让它与它一起工作,尽管我认为这可能是因为我使用错误......
我还尝试在许多不同的地方使用 overridePendingTransition(0,0),包括...
ft.commit() 之前和之后
overridePendingTransition(0,0);
ft.commit();
overridePendingTransition(0,0);
拆装前后...
overridePendingTransition(0,0);
ft.detach(fragmentSparseArray.get(i));
ft.attach(fragmentSparseArray.get(i));
overridePendingTransition(0,0);
两者的结合......我也尝试过申请......
addToBackStack(null)
拆卸和连接后。
我尝试做的最后一件事是添加...
android:animateLayoutChanges="false"
到片段和 ViewPager xml 布局。
这些都没有做出任何改变。我会对任何建议感兴趣!
谢谢你。
解决方案
推荐阅读
- typescript - 如何在 TypeScript 枚举中使用属性键 (object.key)?
- r - 替换R中一个单元格上的日期值
- ruby-on-rails - 导致遗留问题的路线轨道 5,不能破坏等
- php - 如何在 Laravel 8.x 的视图中检索 cookie 值?
- python - 停止语句执行直到为真
- python - 如何从接口外部访问变量
- r - R 版本 4.0.5 的 R 类型强制错误
- build - 我正在尝试为我使用 expo cli 设计的 react native 项目构建独立的应用程序。但是构建在中途停止并显示以下错误
- javascript - 在 Firebase 身份验证弹出窗口中更改颜色
- windows - git提示输入用户名和密码