我有一个名为 DomaineDashboardFragment 的片段,如果它是当前片段,我用捆绑包中的不同数据打开它,它没有刷新,它保持旧的数据,有没有人有想法解决这个问题? 片段工作正常,问题就在我更改数据时。
答案 0 :(得分:0)
对于每个人都面临同样的问题,你可以这样做:
DomaineDashboardFragment currentFragment = (DomaineDashboardFragment) getSupportFragmentManager().findFragmentByTag("DomaineDashboardFragment");
if(currentFragment != null && currentFragment.isAdded())
((MyApplication)getApplication()).removeFragment(MainActivity.this, currentFragment);
Handler h = new Handler();
h.postDelayed(new Runnable() {
@Override
public void run() {
DomaineDashboardFragment domaineDashboardFragment = new DomaineDashboardFragment();
domaineDashboardFragment.setArguments(b);
((MyApplication)getApplication()).setUpFragment(MainActivity.this, domaineDashboardFragment, R.id.fragment_container);
}
}, 100);
删除片段然后附加新片段
答案 1 :(得分:0)
您可以使用最新的Android Architecture组件并创建ViewModel类。那么,你可以做什么,每当你在json_decode($json, true);
中的数据包中获取数据时,将数据设置为ViewModel和Fragment
除此之外,您必须再次分离并附加片段以获取新数据。
答案 2 :(得分:-1)
通过bundle传递数据将不起作用。因此,您需要在片段中创建一个公共方法,例如refresh(),并将数据传递给此方法并更新此方法中的视图。
每当你想刷新时调用fragment.refresh();
<div id="parent">
<div id="some_content">Some Content</div>
<div id="sticky">Sticky div</div>
</div>
<div id="space"></div>
<p>Scroll here</p>