0

私はこれに夢中になっています...なぜこのセンターにならないのですか?ほぼすべてのセンタリングオプションを組み合わせて試してみましたが、くそったれのテキストとパスワードフィールドが中央に表示されません! MyTouch 4G では問題なく動作しますが、Motorola の携帯電話はすべてこのように動作します...

基本的な呼び出しでダイアログを呼び出します

Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.preference_dialog);
dialog.setTitle(getResources().getText(R.string.stringLoginTitle));
dialog.setCancelable(true);
dialog.show();

Eclipse でのダイアログ レイアウトは次のようになります。

ここに画像の説明を入力

ダイアログとして表示すると、次のようになります。

ここに画像の説明を入力

ダイアログ レイアウト xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" 
android:layout_centerHorizontal="true"
android:gravity="center" android:layout_gravity="center">

<TextView
    android:id="@+id/tv_LoginTitle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:text="@string/stringLoginPassword" 
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:gravity="center" />


<EditText
    android:id="@+id/et_AdminPassword"
    android:layout_width="120dip"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_below="@+id/tv_LoginTitle"
    android:inputType="textPassword" >

    <requestFocus />
</EditText>

<Button
    android:id="@+id/btn_AdminOkay"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/et_AdminPassword"
    android:layout_alignLeft="@+id/et_AdminPassword"
    android:text="Login" />

<Button
    android:id="@+id/btn_AdminCancel"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/et_AdminPassword"
    android:layout_alignRight="@+id/et_AdminPassword"
    android:text="Cancel" />

</RelativeLayout>
4

3 に答える 3

1

Motorola のすべての携帯電話 X2、Razr でこれを見ました。Motorola のスタイルのバグであることは間違いないようです。

独自のスタイルを作成し、\android-sdk\platforms\android-10\data\res\drawable-hdpi から panel_background をコピーしてドローアブルに配置することで修正しました。@android:drawable/panel_background を使用して参照すると、Eclipse はコンパイルされません。

スタイル.xml

<style name="Theme.CustomDialog" parent="@android:style/Theme.Dialog">
    <item name="android:windowBackground">@drawable/panel_background</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
</style>

次に、Theme パラメータを追加してダイアログを呼び出します。

Dialog dialog = new Dialog(this, R.style.Theme_CustomDialog);

Motorolaの問題が修正されました!

于 2012-05-11T19:35:53.913 に答える
0

RelativeLayoutにはXMLプロパティandroid;layout_alignCenterがあります。最初のテキストビューでそれを試し、残りをテキストビューに揃えることができます。

于 2012-05-11T18:02:59.553 に答える
0

同じレイアウトを作成する必要がある場合は、linearlayout を使用していたでしょう...

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:orientation="vertical"
                android:gravity="center" android:layout_gravity="center">

    <TextView
            android:id="@+id/tv_LoginTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:text="@string/stringLoginPassword" 
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:gravity="center" />


    <EditText
            android:id="@+id/et_AdminPassword"
            android:layout_width="120dip"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:inputType="textPassword" >

        <requestFocus />
    </EditText>
    <LinearLayout 
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:orientation="horizontal"
                  android:gravity="center" android:layout_gravity="center">
    <Button
            android:id="@+id/btn_AdminOkay"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Login" />

    <Button
            android:id="@+id/btn_AdminCancel"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Cancel" />
    </LinearLayout>
</LinearLayout>
于 2012-05-11T17:39:40.253 に答える