android - 在 DialogFragment 中使用 onCreateView 的自定义 View

标签 android user-interface

一段时间以来一直在努力解决这个问题:

我正在尝试使用 Dev site 上显示的标准方法创建自定义对话框.

public class CustomDialog extends DialogFragment {    
    private OnDialogResultListener mOnDialogResultListener = null;
    public void setOnDialogResultListener(OnDialogResultListener dialogResultListener) {
        mOnDialogResultListener = dialogResultListener;
    }

    public static CustomDialog newInstance(OnDialogResultListener dialogResultListener) {
        CustomDialog frag = new CustomDialog();        
        frag.setOnDialogResultListener(dialogResultListener);
        return frag;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        getDialog().setTitle(getString(R.string.Dialog_CustomDialog_Title));
        View v = inflater.inflate(R.layout.customdialog, container, false);
        return v;
    }
}

XML 是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_height="fill_parent" android:background="@color/white" android:layout_margin="0px" android:layout_width="fill_parent">
    <EditText android:hint="@string/Dialog.CustomDialog.OldPassword" android:layout_marginBottom="@dimen/normalMargin" android:layout_height="wrap_content" android:inputType="textPassword" android:id="@+id/EditText02" android:layout_width="fill_parent"></EditText>
    <EditText android:hint="@string/Dialog.CustomDialog.NewPassword" android:layout_height="wrap_content" android:inputType="textPassword" android:id="@+id/EditText01" android:layout_width="fill_parent"></EditText>
    <EditText android:hint="@string/Dialog.CustomDialog.RetypePassword" android:layout_height="wrap_content" android:inputType="textPassword" android:id="@+id/editText1" android:layout_width="fill_parent">
        <requestFocus></requestFocus>
    </EditText>
    <LinearLayout android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:layout_width="fill_parent">
        <Button android:layout_height="wrap_content" android:text="@string/save" android:layout_width="@dimen/normalButtonWidth" android:id="@+id/btn_Custom_save"></Button>
        <Button android:layout_height="wrap_content" android:text="@string/cancel" android:layout_width="@dimen/normalButtonWidth" android:id="@+id/btn_Custom_cancel"></Button>
    </LinearLayout>
</LinearLayout>

在创建并显示对话框后,我剩下: enter image description here

已应用白色背景来强调意外和不需要的行为。

有什么想法吗?我试过更改宽度/高度,在水平 LinearLayout 中使用权重,以编程方式设置宽度/高度 - 都无济于事。

最佳答案

我发现了这个技巧: getDialog().getWindow().setBackgroundDrawableResource(R.color.white);

看起来是更好的解决方案。

关于android - 在 DialogFragment 中使用 onCreateView 的自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7909592/

相关文章:

objective-c - 更改 NSButton 的背景颜色

android - 构建缓存的最佳方式

Android LocationListener 从 GPS 切换到网络

android - 在 Home 之外重用 WidgetProvider?

python - Tkinter 如何将 B1-Motion 绑定(bind)到 Combobox

python - 高级计算器具有 Tkinter GUI 和变量错误

java - 测试套件构造失败 -(android.test.suitebuilder.TestSuiteBuilder$FailedToCreateTests)。如何解决?

java - AndEngine Sprite 部分的图像

html - 为什么不显示第二个 div 的背景图像?

java - 如何停止改变按钮的位置?