Android中的DialogFragment位置

时间:2013-12-18 09:35:57

标签: android android-layout android-dialogfragment

我正在尝试在屏幕上的特定位置找到我的对话框。 这是我的对话框实现:

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)?就像它周围有一个框架或东西!

screenshot

1 个答案:

答案 0 :(得分:1)

它周围有一个框架,它在styles.xml中定义,更具体地说是this 9补丁。我认为你有两种选择:

  1. 开始使用负上/左边距参数,直到将其准确对齐到您想要的位置(注意使用dpi值)。
  2. 如此应用DialogFragment.STYLE_NO_FRAME

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);       
        setStyle(DialogFragment.STYLE_NO_FRAME, 0);
    }