Android 自定义对话框无法正常运行

Android 自定义对话框无法正常运行,android,xml,customdialog,Android,Xml,Customdialog,在我的应用程序中,我尝试创建自定义对话框,因此我为此编写了一个XML,在我的XML中,它的显示方式如下: dialog.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent"

在我的应用程序中,我尝试创建自定义对话框,因此我为此编写了一个XML,在我的XML中,它的显示方式如下:

dialog.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:orientation="vertical"
           >

<RelativeLayout android:layout_width="fill_parent" 
                android:layout_height="50.0dip" 
                android:layout_marginTop="5.0dip"
                android:layout_margin="5.0dip">

    <TextView android:id="@+id/textViewOTPDialogMessage" android:text="@string/OTPDialogActivityMessage" android:gravity="center" android:textStyle="bold" android:textColor="#ff4d4d4d" 
       android:layout_width="wrap_content" android:textSize="18dp"
       android:layout_height="wrap_content"   
       android:layout_centerVertical="true" />

    <View android:layout_marginTop="1.0dip" android:layout_below="@+id/textViewOTPDialogMessage" android:layout_width="fill_parent" android:layout_height="1dp" android:background="@android:color/darker_gray"/>

</RelativeLayout>


<RelativeLayout android:layout_width="fill_parent" android:layout_height="50.0dip" android:layout_marginTop="5.0dip">

   <TextView android:text="E-Mail Id OTP* " android:id="@+id/textViewEmailOTP" android:textStyle="bold" android:textColor="#ff4d4d4d" 
       android:gravity="left"  android:layout_width="wrap_content" 
       android:layout_height="wrap_content"  android:layout_marginLeft="10.0dip" android:layout_alignParentLeft="true" 
       android:layout_centerVertical="true" />

   <EditText  
       android:id="@+id/editTextEmailIdOtp" android:background="@drawable/custom_edittext" 
       android:paddingLeft="5.0dip" android:layout_width="fill_parent" android:layout_height="35.0dip" 
       android:layout_marginLeft="150.0dip" android:layout_marginRight="10.0dip" 
       android:singleLine="true" android:layout_alignParentLeft="true" 
       android:layout_centerVertical="true" android:imeOptions="actionNext" />

</RelativeLayout>

<RelativeLayout android:layout_width="fill_parent" android:layout_height="50.0dip">

   <TextView android:text="Mobile OTP* " android:id="@+id/textViewMobileOTP" android:textStyle="bold" android:textColor="#ff4d4d4d" 
       android:gravity="left" android:layout_width="wrap_content" 
       android:layout_height="wrap_content"  android:layout_marginLeft="10.0dip" android:layout_alignParentLeft="true" 
       android:layout_centerVertical="true" />

   <EditText  
       android:id="@+id/editTextMobileOtp" android:background="@drawable/custom_edittext" 
       android:paddingLeft="5.0dip" android:layout_width="fill_parent" android:layout_height="35.0dip" 
       android:layout_marginLeft="150.0dip" android:layout_marginRight="10.0dip" 
       android:singleLine="true" android:layout_alignParentLeft="true"
       android:layout_centerVertical="true" android:imeOptions="actionNext" />

</RelativeLayout>


<Button android:id="@+id/btnValidate" android:text="Validate" android:textSize="18.0sp" android:textStyle="bold" android:textColor="#ff4d4d4d"
    android:layout_gravity="center_horizontal" android:layout_width="wrap_content" 
    android:layout_height="wrap_content" android:layout_marginTop="10.0dip" android:layout_marginBottom="10.0dip" />


</LinearLayout>
在XML中,我提到了这些行

android:layout_width="fill_parent"
android:layout_height="wrap_content"
然后也不知道这里发生了什么

现在怎么办,

请帮忙


谢谢。

在代码中添加以下行:

myDialog.setWindowLayoutMode(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);

试试这个

我以前也发现过同样的问题,我试着用这个来解决

@Override
public void onStart() {
    super.onStart();
    LayoutParams params = getDialog().getWindow().getAttributes();
    params.width = LayoutParams.MATCH_PARENT;
    getDialog().getWindow().setAttributes(params);      
}
希望它有帮助

尝试以下方法:

LayoutInflater factory = LayoutInflater.from(Splash.this);

View DialogView = factory.inflate(
            R.layout.custom_progress_layout, null);

Dialog main_dialog = new Dialog(Splash.this,R.style.Theme_Dialog);
main_dialog.setContentView(DialogView);
main_dialog.show();
并在
values\styles.xml

  <style name="Theme_Dialog" parent="android:Theme.Holo.Dialog">
    <item name="android:backgroundDimEnabled">false</item>
    <item name="android:layout_width">fill_parent</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
</style>

假的
填补家长的空缺
真的
@android:彩色/透明
在我的情况下,这是完美的工作


更新:您只需使用
android:layout\u width=“wrap\u content”
属性宽度更改为
布局.xml

将此代码放入
对话框的
一旦创建

getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);

同时发布你的代码pplz…像这样试试@MD:Removed没有区别:(@Android发生了什么事你的问题解决了还是没有?@MD:Sorry我正在吃午饭..要试试吗
  <style name="Theme_Dialog" parent="android:Theme.Holo.Dialog">
    <item name="android:backgroundDimEnabled">false</item>
    <item name="android:layout_width">fill_parent</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
</style>
getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);