【发布时间】:2018-02-16 20:30:30
【问题描述】:
当用户在Main Activity 上单击button 时,我想动态更改fragment1 的可见性。 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 中,否则,如果可以切换可见性状态,就不可能从不可见状态恢复到可见状态。
考虑到这一点,我实现了以下内容,但它对片段没有影响 - 这是我怀疑的,因为我已经提交了片段。注意:以下是在提交上面详述的片段后,Main Activity 的 onCreate 方法中。
任何建议都会非常感谢。
Button btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
fragmentTransaction.hide(fragment1);
}
});
【问题讨论】:
标签: java android android-fragments visibility