当用户点击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
答案 0 :(得分:0)
这是我面临的一个更大问题的问题,即使用ObjectAnimator
设置嵌套片段的动画,然后切换其可见性。
对于试图切换片段可见性的任何人来说,您似乎只能更改ViewGroup
参数中包含的fragmentTransaction.add(R.id.fragment_container, fragment1);
的影响更改。在这种情况下,它将是fragment_container
。因为这是rootView,所以改变这个就足够了,因为我希望整张卡片消失。
另外值得注意的是,这应该是一个儿童片段。因此,使用getFragmentManager
是不正确的。我避免使用getChildFragmentManager
,因为我收到了一系列变得越来越复杂的错误。更改我正在添加我的子片段的ViewGroup
(将其更改为父FrameLayout
内的Fragment
)后,很快就解决了这个问题。