将活动显示为对话框时出现问题

时间:2012-07-11 07:25:09

标签: android

我有一个活动课。对于这个Activity类,我有一个xml布局。我想将此活动类显示为对话框,因此要在清单中执行以下更改。

 <activity
    android:name=".AlarmDialogActivity"
    android:theme="@android:style/Theme.Dialog">            
 </activity> 

当我运行我的应用程序时,活动类显示为对话框,但是压缩的宽度,它不占用设备的全屏..为什么会发生这种情况,任何人都可以帮我解决这个问题吗?

xml布局代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_alarm_dialog"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#E0D5B1"
    android:gravity="center_vertical|center_horizontal"
    android:orientation="vertical" >

        <TextView
            android:id="@+id/dialog_title_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="@string/dialog_title_text"
            android:textColor="#e89192"
            android:textSize="18dp" >
        </TextView>

        <ListView
            android:id="@+id/alarm_list_view"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="15dp"
            android:layout_marginTop="10dp"
            android:cacheColorHint="#00000000"
            android:divider="@null"
            android:dividerHeight="0dp"
            android:listSelector="#00000000" >
        </ListView>

    <LinearLayout
        android:id="@+id/bottom_control_bar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="10dp"
        android:gravity="center_horizontal|center_vertical" >

        <Button
            android:id="@+id/button_dismiss"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/button_dismiss_text"
            android:textColor="#121212"
            android:textSize="18dp" >
        </Button>
    </LinearLayout>

</LinearLayout>

对话框的屏幕截图

enter image description here

4 个答案:

答案 0 :(得分:1)

通过以下方式更改xml布局文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">


    <Button 
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="xxxxxxxx"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:textColor="#121212"
            android:textSize="18dp"/>

    <TextView 
        android:id="@+id/txt"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="xxxxxxxxxxxx"
        android:textColor="#e89192"
        android:textSize="18dp"
        android:gravity="center"/>

    <ListView 
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/txt"
        android:layout_above="@+id/btn"/>


</RelativeLayout>

添加要添加到布局的任何样式。

在活动的setcontentview之前添加以下行:

requestWindowFeature(Window.FEATURE_NO_TITLE);

并在您的活动下的清单文件中:

 android:theme="@android:style/Theme.Dialog"

答案 1 :(得分:0)

试试这个:

<TextView
    android:id="@+id/dialog_title_text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:text="@string/dialog_title_text"
    android:textColor="#e89192"
    android:textSize="18dp" >
</TextView>

答案 2 :(得分:0)

在活动类文件中尝试此操作:

WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialogPost.getWindow().getAttributes());                      
lp.gravity = Gravity.CENTER;
lp.width = WindowManager.LayoutParams.FILL_PARENT;
dialogPost.getWindow().setAttributes(lp);  
dialogPost.show();

dialogPostDialogBox的位置。您可以使用dialogPost更改视图。

答案 3 :(得分:0)

在TextView中尝试android:layout_width="fill_parent。它对我有用。