我目前正在尝试使活动中的其他所有内容都清晰可见。然后,按一下按钮,片段应消失并显示以前的所有内容。
这是我目前的尝试:
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction()
.replace(currentFragment.getId(), fragment);
transaction.addToBackStack(null);
transaction.commit();
然后按按钮,我做了
getFragmentManager().popBackStack();
但是我遇到的问题是片段没有完全膨胀到其他所有视图之上,并且按下按钮并没有达到预期的效果。有什么建议吗?
编辑:它仍在显示一个bottomNavigationView,我想对此进行充气。
答案 0 :(得分:1)
您可以使用Dialog片段,例如:
public class PopUpDialogFragment extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Context context = getActivity();
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Your title")
.setMessage("Your message")
.setPositiveButton("Button name", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//Do your stuff here
dismiss();
}
});
return builder.create();
}
}
然后您从活动中调用它,例如:
PopUpDialogFragment fragment = new PopUpDialogFragment();
fragment.show(getFragmentManager(), "popUp");
如果您想要一个具有自己的自定义视图的Fragment,则可以使用onCreateView方法创建一个。
public class PopUpDialogFragment extends DialogFragment {
private Button button;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup
container, Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.your_layout,
container, false);
button = view.findViewById(R.id.your_button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Do your stuff here
getDialog().dismiss();
}
});
return view;
}
}