gpt4 book ai didi

android - 刷新或强制重绘 fragment

转载 作者:IT王子 更新时间:2023-10-28 23:54:49 29 4
gpt4 key购买 nike

我有一个扩展 xml 布局的 fragment 。我的要求是在我的 Activity 恢复时更新 fragment 内所有 View 的文本大小。我试过了

    fragment.getView().invalidate();

这似乎没有做这项工作。我也试过了

    fragment.getView().requestLayout();

这也没用。

在另一个 Activity 中,我有一个 ListFragment 需要做同样的事情。我试过了

    listfragment.getListView().invalidate();

成功了,刷新了我的 ListView 并重绘了其中的所有项目。

我不明白为什么一个有效,而另一个无效。

我还看到有人建议发起 fragment 事务 并用新 fragment 替换当前 fragment ,这让我感到疑惑

  1. 当我只需要刷新我的 fragment 包含的 View 上的文本时,我为什么要创建一个全新的 fragment 并替换我当前的 fragment 。

  2. fragment 事务方法将阻止我在我的 Activity 的布局 xml 中定义我的 fragment ,我必须以编程方式将 fragment 插入到正确的位置。

有什么简单的方法吗?

最佳答案

我认为没有办法做到这一点。 fragment 在 onCreateView() 上重建它的 UI ...但是在创建或重新创建 fragment 时会发生这种情况。

您必须实现自己的 updateUI 方法,或者在哪里指定哪些元素以及它们应该如何更新。这是一个很好的做法,因为无论如何在创建 fragment 时都需要这样做。

但是,如果这还不够,你可以做一些事情,比如用相同的 fragment 替换 fragment ,强制它调用 onCreateView()

FragmentTransaction tr = getFragmentManager().beginTransaction();
tr.replace(R.id.your_fragment_container, yourFragmentInstance);
tr.commit()

注意

要刷新 ListView,您需要在 ListView 的适配器上调用 notifyDataSetChanged()

关于android - 刷新或强制重绘 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15262747/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com