0

ダイアログはパディングが10dpiに設定されているアクティビティからスタイルを継承するため、ダイアログのカスタムスタイルを設定しようとしています。しかし、私が試したことはすべて失敗しました:)。

スタイル:

<style name="ActivityStyle" parent="@android:style/Theme.Holo.NoActionBar">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:padding">10dp</item>
</style>

ダイアログスタイル:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_root"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginTop="5dip"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="70dip"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dip"
            android:text="@string/CreateRoomDialog_textName"
            android:textColor="#FFFFFF"
            android:textSize="14sp" />

        <EditText
            android:id="@+id/CreateRoomDialog_fieldName"
            android:layout_width="0dip"
            android:layout_height="38dip"
            android:layout_marginLeft="10dip"
            android:layout_marginRight="10dip"
            android:layout_weight="1"
            android:inputType="text"
            android:textSize="12sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="70dip"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dip"
            android:text="@string/CreateRoomDialog_textPwd"
            android:textColor="#FFFFFF"
            android:textSize="14sp" />

        <EditText
            android:id="@+id/CreateRoomDialog_fieldPwd"
            android:layout_width="0dip"
            android:layout_height="38dip"
            android:layout_marginLeft="10dip"
            android:layout_marginRight="10dip"
            android:layout_weight="1"
            android:inputType="textPassword"
            android:textSize="12sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingLeft="2dip"
        android:paddingRight="2dip"
        android:paddingTop="4dip" >

        <Button
            android:id="@+id/CreateRoomDialog_btnCancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:layout_weight="1"
            android:text="@android:string/cancel" />

        <Button
            android:id="@+id/CreateRoomDialog_btnOK"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:layout_weight="1"
            android:text="@android:string/ok" />
    </LinearLayout>

</LinearLayout>

カスタムダイアログコンストラクター:

public CreateRoomDialog(Context c, boolean isNew) {
        super(c); - I tried put style here, but no success.

        this.c = c;
        this.isNew = isNew;

        this.setTitle(c.getString(R.string.CreateRoomDialog_addData));
        setContentView(R.layout.createroomdialog);

    }

パディングを使用すると、次のようになります。

パディング付き

パディングダイアログがなくても問題ありませんが、アクティビティは次のことを行いません。

パディングなし

4

1 に答える 1

0

問題が解決しました。スタイルからパディングを削除したため、ダイアログはパディングを継承しません。そして、各アクティビティ レイアウトに手動でパディングを追加します。

于 2012-08-16T11:02:27.960 に答える