我有一个主要用于查看文档的应用程序。这些文档显示在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布局。
这些都没有进行任何更改。我会对任何建议感兴趣!
谢谢。