Android:用户界面没有刷新

时间:2017-12-13 00:09:26

标签: android android-fragments android-recyclerview

我有一个非常奇怪的错误让我嗡嗡了几天..

我有一个活动,在FrameLayout内的整个屏幕上显示一个片段。 片段可以改变(假设我点击一个按钮,它通过调用add& addToBackStack在第一个片段的顶部显示新片段)。 在主片段内部,有一个回收器视图,可以加载一些可点击元素,其中一些可以启动一个新片段,另一些则会更新当前片段的UI

直到几个月,它工作得很好,但最近却没有(我可能做了一些改变,但找不到根本原因)。

症状如下:

  • 我点击了一个应该切换的按钮(例如从启用切换到禁用状态)。现在,onClickListener被触发,但即使调用notifyDataSetChanged也不会呈现UI!如果我手动滚动,则会更新UI。如果我调用recyclelerView.scroll(0,0),UI也会更新。 在那种情况下,我尝试调试:当调用notifyDataSetChanged时,没有任何反应。就像没有任何东西一样,视图甚至没有绑定或任何东西(我没有构建一个新的元素列表,我从主线程调用它,...)

  • 我点击了一个按钮,该按钮应该在这个按钮之上打开一个新片段。现在,触发了onClickListener,但未显示新片段。但是,如果我滚动,片段会突然显示。如果我不滚动并单击其他应该打开片段的按钮,则不会呈现任何内容,但是当我滚动时,UI将突然更新并且片段堆栈将被正确呈现。

用于加载片段的代码如下:

        getSupportFragmentManager().beginTransaction()
                .add(R.id.fragment_container, new MyFragment(), tag)
                .addToBackStack(tag)
                .commit();

所有可点击元素都在要加载的第一个片段的RecyclerView内。

0 个答案:

没有答案