我为此疯狂...为什么这个中心我不会尝试几乎所有的组合中心选项,但是这些文字和密码字段不会居中!它可以在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中对话框布局的内容
以下是对话框显示的内容。
对话框布局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>
答案 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对齐。