Android中继承样式的问题

时间:2011-02-21 10:35:00

标签: android inheritance coding-style

我正在使用自定义对话框样式删除白色边框。为此,我创建了一个继承自Theme.Dialog的自定义样式,并在对话框构造函数中设置它。当没有设置任何样式时(我猜它默认使用Theme.Dialog),对话框水平和垂直居中,但是当我使用我的样式时,它只是重写android:windowBackground,我的对话框不再居中,所以看起来似乎风格不是继承的......

有人可以帮忙吗?

谢谢!

我的风格:

<resources>
<style
    name="Theme_Dialog_Translucent"
    parent="@android:style/Theme.Dialog">
    <item name="android:windowBackground">@color/transparent</item>        
</style>
</resources>

我的课程:

public class CustomDialog extends Dialog implements OnClickListener {
    Button okButton;

    public CustomDialog(Context context) {      
        //super(context); //if I use that the dialog is centered
        super(context, R.style.Theme_Dialog_Translucent);
        requestWindowFeature(Window.FEATURE_NO_TITLE);      
        setContentView(R.layout.custom_dialog);
        okButton = (Button) findViewById(R.id.button_ok);
        okButton.setOnClickListener(this);
    }
    ...
}

我的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/confirmation"
    android:orientation="vertical"
    android:background="@drawable/dialog_background"
    android:layout_width="279dp"
    android:layout_height="130dp"   
>
    <TextView android:id="@+id/dialog_title"
        android:text="@string/dialog_title"
        android:textColor="#FFF"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"/>
    <TextView android:id="@+id/dialog_text"
        android:text="@string/dialog_text"
        android:textColor="#FFF"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"/>
    <LinearLayout android:id="@+id/confirmation"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
        <Button android:id="@+id/button_ok"
            android:background="@drawable/button_ok"
        android:layout_width="128dp"
        android:layout_height="43dp"
        android:text="ok"
        android:textColor="#FFFFFF"        
    />
    <Button android:layout_width="128dp"
        android:id="@+id/button_cancel"
        android:layout_height="43dp"
        android:background="@drawable/button_cancel"
        android:text="cancel"
        android:textColor="#FFFFFF"
    />


</LinearLayout>
</LinearLayout>

0 个答案:

没有答案