【问题标题】:DialogFragment Position in Android [duplicate]Android中的DialogFragment位置[重复]
【发布时间】:2013-12-18 09:35:57
【问题描述】:

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

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

【问题讨论】:

    标签: android android-layout android-dialogfragment


    【解决方案1】:

    它周围有一个框架,在styles.xml 中定义,更具体地说是this 9-patch。在我看来,您有两种选择:

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

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

    【讨论】:

    • 感谢您的回答!我决定使用 PopupWindow!这正是我想要的! :-)
    猜你喜欢
    • 2012-03-30
    • 1970-01-01
    • 2020-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    相关资源
    最近更新 更多