美好的一天,为令人困惑的头衔道歉。
我正在创建一个Android应用程序,我需要一个对话框/弹出窗口出现在特定的X Y位置。我已经有一个工作的DialogFragmet,如下所示:
public class ItemDialog extends DialogFragment implements OnClickListener{
//a lot of public and private variables here
public interface onSubmitListener {
void setOnSubmitListener(String qty, String disc, String instructions, UOMClass uom);
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Dialog dialog = new Dialog(getActivity());
dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
LayoutInflater layoutInflater = (LayoutInflater) getActivity()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout2 = layoutInflater.inflate(R.layout.fragment_item_dialog, null);
dialog.setContentView(layout2);
setStyle(DialogFragment.STYLE_NORMAL, R.style.MyDialog);
//snip snip more code
dialog.show();
//buttons - I set the buttons here
//editTexts - I set the edit texts here
//TextViews - I set the text views here
return dialog;
}
//more functions here
}
我从我的基础活动中调用它如下:
ItemDialog itemDialog = new ItemDialog();
//pass values from base activity to the ItemDialog here
itemDialog.show(getFragmentManager(), "");
但是,我需要能够在其中的编辑文本中查看基本活动和输入值。截至目前,我的DialogFragment覆盖了屏幕的很大一部分,我无法看到它背后的活动。单击Dialog Fragment外部也会取消它。
我已经搜索了如何使警报对话框浮动,但无济于事。
有没有办法在屏幕的某个区域显示对话框片段,以允许用户在基本活动中查看并仍然输入值?
非常感谢任何帮助,谢谢。
答案 0 :(得分:1)
你可以获得窗口对象并在代码下面设置它的布局参数可能对你有帮助。
Window window = getDialog().getWindow();
// set "origin" to top left corner, so to speak
window.setGravity(Gravity.TOP|Gravity.LEFT);
// after that, setting values for x and y works "naturally"
WindowManager.LayoutParams params = window.getAttributes();
params.x = 300;
params.y = 100;
window.setAttributes(params);
了解更多信息Position of DialogFragment in Android 您还可以将背景颜色或位图设置为对话框