1

我创建并显示了一个 Alertdialog,它在模拟器中看起来不错,但在我的设备中看起来很奇怪。

这是它在模拟器中的样子:

在此处输入图像描述

这是它在设备中的样子:

在此处输入图像描述

这是我正在执行以显示对话框的代码:

    AlertDialog.Builder builder;
    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);


    View layout = inflater.inflate(R.layout.popup_contact, (ViewGroup) findViewById(R.id.ppc_llContact));
    tbMissatge = (EditText) layout.findViewById(R.id.ppc_tbMissatge);
    builder = new AlertDialog.Builder(this);


    builder.setView(layout);
    ppEnviarMsg = builder.create();


    btEnviar = (Button) layout.findViewById(R.id.ppc_btEnviar);
    btEnviar.setOnClickListener(this);

    ppEnviarMsg.show();


    ppEnviarMsg.getWindow().getAttributes().gravity = Gravity.CENTER;

这里是弹出窗口的布局:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/ppc_llContact"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#414145"
        android:orientation="vertical"
        android:gravity="center">

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textColor="#ffffff"
            android:text="@string/ppc_lbContact"
            android:layout_margin="4dp"/>

        <EditText
            android:id="@+id/ppc_tbMissatge"
            android:hint="@string/ppc_tooltipContact"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="2dp" 
            android:inputType="textMultiLine"
            android:gravity="top"
            android:lines="5">
        </EditText>

        <Button android:id="@+id/ppc_btEnviar"
            android:text="@string/ppc_btEnviar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:paddingLeft="20dp"
            android:paddingRight="20dp"
            android:layout_marginTop="10dp"/>

    </LinearLayout>

它可能与Sense有关吗?我的设备是 HTC Desrie S,运行 ICS 和 Sense。有人知道吗?

感谢您的帮助!

4

1 回答 1

1

我认为问题可能出在这里:

View layout = inflater.inflate(R.layout.popup_contact, (ViewGroup) findViewById(R.id.ppc_llContact));

您将 Activity 的某些布局ppc_llContact用作“为返回的层次结构的根提供一组 LayoutParams 值的对象”,这是毫无意义的,因为此布局不会参与对话框的最终层次结构。

改用这个:

View layout = inflater.inflate(R.layout.popup_contact, null);

另一种选择是以这种方式强制设置对话框的大小:

ppEnviarMsg.getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
//FILL_PARENT is an example
于 2012-11-16T11:08:53.527 回答