我正在尝试将对话框定位在屏幕上的特定位置。 这是我的对话框实现:
public class DayDialog extends android.support.v4.app.DialogFragment {
public static DayDialog newInstance() {
DayDialog f = new DayDialog();
f.setCancelable(true);
f.setStyle(STYLE_NO_TITLE, 0);
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View layout = inflater.inflate(R.layout.dialog_calendar_day, container);
WindowManager.LayoutParams params = getDialog().getWindow()
.getAttributes();
params.gravity = Gravity.TOP | Gravity.LEFT;
params.x = 0;//b.getInt("x");
params.y = 0;//b.getInt("y");
getDialog().getWindow().setAttributes(params);
return layout;
}
这是我的对话框的显示方式!我怎样才能找到它(0,0)?就像它周围有一个框架或其他东西!
最佳答案
事实上它周围有一个框架,在 styles.xml 中定义。 ,更具体地说是 this 9 补丁。在我看来,你有两个选择:
- 开始尝试使用负的上/左边距参数,直到将其精确对齐到您想要的位置(注意使用 dpi 值)。
像这样应用
DialogFragment.STYLE_NO_FRAME
:@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setStyle(DialogFragment.STYLE_NO_FRAME, 0); }
关于android - Android 中的 DialogFragment 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20654339/