动态更改片段的可见性

时间:2017-09-08 02:05:12

标签: java android android-fragments visibility

当用户点击totalPrice product y = case product of Ramen | x <= 10 -> 2 * x ... where x = fromInteger y 上的fragment1时,我想动态更改button的可见性。 Main Activity初始化为可见,但按下按钮后,fragment1会变为隐藏状态。

我已经读过,更改活动中片段的可见性是危险的,随后应该使用fragment1进行处理,例如

Fragment Manager

但是,我的理解是,一旦片段被提交,它就被有效地初始化,因此要改变它的状态需要它被替换,因此要经历上述过程?改变一些初步的东西似乎非常麻烦。

显然,按钮需要在 FragmentManager fragmentManager = getFragmentManager(); final FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); final fragment_one fragment1 = new fragment_one(); fragmentTransaction.add(R.id.fragment_container, fragment1); fragmentTransaction.show(fragment1); //or .hide(fragment1); fragmentTransaction.commit(); ,否则,如果可以切换可见性状态,则无法从不可见状态恢复到可见状态。

考虑到这一点,我实现了以下内容,但它对片段没有影响 - 这是我怀疑已经提交片段的内容。注意:以下是在提交上面详述的片段后Main Activity中的onCreate方法。

任何建议都会非常感谢。

Main Activity

1 个答案:

答案 0 :(得分:0)

这是我面临的一个更大问题的问题,即使用ObjectAnimator设置嵌套片段的动画,然后切换其可见性。

对于试图切换片段可见性的任何人来说,您似乎只能更改ViewGroup参数中包含的fragmentTransaction.add(R.id.fragment_container, fragment1);的影响更改。在这种情况下,它将是fragment_container。因为这是rootView,所以改变这个就足够了,因为我希望整张卡片消失。

另外值得注意的是,这应该是一个儿童片段。因此,使用getFragmentManager是不正确的。我避免使用getChildFragmentManager,因为我收到了一系列变得越来越复杂的错误。更改我正在添加我的子片段的ViewGroup(将其更改为父FrameLayout内的Fragment)后,很快就解决了这个问题。