Android:隐藏默认边框时DialogFragment包装内容宽度

时间:2012-08-16 20:25:39

标签: android dialog fragment

我有一个自定义对话框视图,我正在显示圆角。因此我需要隐藏我正在成功使用的默认Dialog边框框架,getDialog()。getWindow()。setBackgroundDrawable(new ColorDrawable(0));.

我的问题是对话框现在扩展了整个父宽度,我只希望它像正常的对话窗口一样显示大约90%的宽度。我已经尝试设置getWindow()。setLayout(...)并设置布局参数属性但无济于事。非常感谢任何帮助。

* UPDATE。删除getDialog()。getWindow()。setBackgroundDrawable(new ColorDrawable(0));从我的代码修复宽度问题,但让我回到显示默认对话框边框的问题。虽然因为我的自定义对话框没有边框和圆角,我需要边框消失而不会像大多数对话框那样丢失90%或任何对话框宽度。

public final class ResetPasswordDialogFragment extends DialogFragment {

  public static ResetPasswordDialogFragment newInstance() {
    ResetPasswordDialogFragment f = new ResetPasswordDialogFragment();

    Bundle args = new Bundle();
    f.setArguments(args);

    return f;
   }

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.dialog_fragment_password_reminder, container, false);

    //Removes the default dialog background border
    getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(0));

    Button resetBtn = (Button)v.findViewById(R.id.resetPasswordBtn);
    Button closeBtn = (Button)v.findViewById(R.id.closeBtn);

    //Click Listeners
    resetBtn.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            //TODO web call here
        }
    });
    closeBtn.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
           dismiss();
        }
    });

    return v;
  }
}

1 个答案:

答案 0 :(得分:0)

这可能不是最适合您的解决方案或帮助您使用示例代码,但我要做的是在您的活动或任何触发此类对话框的事件中创建自定义对话框:

          dialog = new Dialog(getActivity(),R.style.Theme_CustomDialog);
          dialog.setContentView(R.layout.custom_dialog);
          dialog.show();

并在Theme_Custom对话框中,如果要删除边框,只需提供

       <item name="android:windowNoTitle">true</item>

然后在custom_dialog xml文件中,给出一个线性/相对布局,其中包含您想要传递的参数以及您希望自定义对话框具有的视图

或者,您可以在此处查看:http://android-developers.blogspot.com/2012/05/using-dialogfragments.html以及http://android-er.blogspot.com/2012/01/dialogfragment.html