android - Android 中的 DialogFragment 位置

标签 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

最佳答案

事实上它周围有一个框架,在 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);
    }
    

关于android - Android 中的 DialogFragment 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20654339/

相关文章:

android - 如何在特殊位置显示 PopupWindow?

Android 库项目到混淆的 JAR

android - 如何将 DatePickerDialog 值设置为 EditText?

java - 尝试从 DatePicker DialogFragment 设置 EditText 的文本

Android fragment 对话框在使用 weightSum 时似乎忽略了 layoutMargin 或 layoutWidth

Android:将 AMP 格式的 HTML 加载到 WebView

android - imageView.getWidth();返回屏幕而不是位图宽度

android - 如何在RecyclerView项目中同时创建垂直和水平的layout_weight

android - 推特可以上传照片吗?如果是,那么如何从 Android 发布或上传照片?

android - 是否可以在对话框 fragment 内显示 map View ?