我想知道如何在Android中的按钮点击中显示和隐藏片段。当按钮处于单击状态时,则应显示片段,当再次单击该按钮时,片段应该消失。
答案 0 :(得分:0)
您应该使用Dialog片段来实现此目的。 Dialog Fragment具有片段所具有的所有生命周期,并具有对话框等行为。 例如要显示,只需调用dialogFragment.show()方法,并隐藏,调用dialogFragment.dismiss()方法。
以下是如何制作对话框片段的示例。
public class DialogFragmentExample extends DialogFragment{
@Override
public void onStart() {
super.onStart();
// To make dialog fragment full screen.
Dialog dialog = getDialog();
if (dialog != null) {
dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
}
//
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
return inflater.inflate(R.layout.your_xml_layout, container, false);
}
// initialize your views here
}
并显示此对话框片段;
DialogFragmentExample fragment = new DialogFragmentExample();
fragment.show();
与解雇相似,
fragment.dismiss();
希望这会对你有帮助!
答案 1 :(得分:0)
片段交易的内部显示/隐藏标志会有所帮助。
FragmentManager fm = getFragmentManager();
fm.beginTransaction()
.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out)
.show(somefrag) //or hide(somefrag)
.commit();
答案 2 :(得分:0)
我试过这个,它对我有用。首先,我在第一次点击按钮时添加了片段,然后在我附加的后续点击中添加了片段并将其分离。所以它创建了片段,然后没有破坏它只显示并隐藏它。
这是代码....首次创建MainActivity时,count最初为0
public void Settings(View view){
if(count==0){
count++;
// add a fragment for the first time
MyFragment frag=new MyFragment();
FragmentTransaction ft=manager.beginTransaction();
ft.add(R.id.group,frag,"A");
ft.commit();
}else{
//check if fragment is visible, if no, then attach a fragment
//else if its already visible,detach it
Fragment frag=manager.findFragmentByTag("A");
if(frag.isVisible() && frag!=null){
FragmentTransaction ft=manager.beginTransaction();
ft.detach(frag);
ft.commit();
}else{
FragmentTransaction ft=manager.beginTransaction();
ft.attach(frag);
ft.commit();
}
}