摩托罗拉Bug为什么这不是中心

时间:2012-05-11 17:20:51

标签: android android-layout

我为此疯狂...为什么这个中心我不会尝试几乎所有的组合中心选项,但是这些文字和密码字段不会居中!它可以在MyTouch 4G上正常工作,但我的摩托罗拉手机也可以这样做......

我通过基本调用

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

以下是Eclispe中对话框布局的内容

enter image description here

以下是对话框显示的内容。

enter image description here

对话框布局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>

3 个答案:

答案 0 :(得分:1)

我在所有的摩托罗拉手机X2,Razr上都看到了这一点......似乎绝对是摩托罗拉风格的一个漏洞。

我通过创建自己的样式并从我的\ android-sdk \ platforms \ android-10 \ data \ res \ drawable-hdpi复制panel_background并将其放在我的drawable中来修复它。如果我使用@android引用它,Eclipse将无法编译:drawable / panel_background。

styles.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);

修复了摩托罗拉问题!

答案 1 :(得分: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>

答案 2 :(得分:0)

RelativeLayout有一个XML属性android; layout_alignCenter,您可以在第一个textview上尝试,然后将其余部分与textview对齐。