gpt4 book ai didi

java - 在当前 View 中的所有其他内容上显示一个 fragment ,然后在单击按钮时将其删除

转载 作者:行者123 更新时间:2023-12-02 10:44:43 26 4
gpt4 key购买 nike

我目前正在尝试让一个 fragment 在 Activity 中的其他所有内容中都可见。然后,按一下按钮, fragment 就会消失并显示出之前存在的所有内容。

这是我当前的尝试:

            FragmentTransaction transaction = getSupportFragmentManager().beginTransaction()
.replace(currentFragment.getId(), fragment);
transaction.addToBackStack(null);
transaction.commit();

按下按钮后,我会:

            getFragmentManager().popBackStack();

但是我遇到的问题是, fragment 并没有完全超出所有其他 View ,并且按下按钮没有产生预期的效果。有什么建议吗?

编辑:这是一个仍在显示的底部导航 View ,我想在其之上进行膨胀。

最佳答案

您可以使用对话框 fragment ,例如:

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();
}

}

然后你从你的 Activity 中调用它,例如:

PopUpDialogFragment fragment = new PopUpDialogFragment();
fragment.show(getFragmentManager(), "popUp");

如果您想要一个具有您自己的自定义 View 的 Fragment,那么您可以使用 onCreateView 方法创建一个 Fragment。

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;
}

}

关于java - 在当前 View 中的所有其他内容上显示一个 fragment ,然后在单击按钮时将其删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52670570/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com