自定义对话框成为Android的
问题描述:
我已经为我的自定义登录对话框自定义对话框成为Android的
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/padding_large">
<ImageButton android:src="@drawable/ic_settings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/dialog.login.settings"
android:padding="@dimen/margin_medium" />
<TextView android:text="@string/dialog.login.text.user_name"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<EditText android:id="@+id/dialog.login.user_name"
android:layout_width="match_parent"
android:gravity="center"
android:ems="20"
android:layout_height="wrap_content"
android:inputType="text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView android:text="@string/dialog.login.text.password"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<EditText android:id="@+id/dialog.login.password"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:textAppearance="?android:attr/textAppearanceMedium" />
<CheckBox android:id="@+id/dialog.login.show_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/dialog.login.check.show_password"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_margin="@dimen/margin_medium"
android:checked="false" />
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button android:id="@+id/dialog.login.cancel"
android:drawableStart="@drawable/ic_exit_black"
android:layout_width="wrap_content"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/margin_medium"
android:text="@string/dialog.login.button.cancel" />
<Button android:id="@+id/dialog.login.connect"
android:text="@string/dialog.login.button.connect"
android:layout_width="wrap_content"
android:layout_weight="1"
android:layout_marginStart="@dimen/margin_medium"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
以下布局,当我创建对话框和的setContentView对话框的宽度的第一个控件的大小变得等于的第一行图像按钮
如果我删除,它成为的EditText(dialog.login.user_name)的大小,其EMS是20
当我做的对话框的构造函数调用基对话框构造带R.style.Theme.Material.Dial的主题og它得到正确的(大约3/4的屏幕),但问题是,它忽略我的主要和重音颜色(这是正常的)
有没有办法让对话有Theme.Material。对话框大小但仍保留我自己的主要/重音颜色?
预先感谢任何帮助,您可以提供
答
很多搜索这之后似乎解决方案是真正取代我的主旋律dialogTheme
属性,因此该解决方案是:
<style name="app.theme"
parent="android:Theme.Material.Light.NoActionBar.Fullscreen">
<item name="android:dialogTheme">@style/app.dialog</item>
......
</style>
<style name="app.dialog"
parent="android:Theme.Material.Light.Dialog">
<item name="android:colorPrimary">@color/primary</item>
<item name="android:colorPrimaryDark">@color/primary.dark</item>
<item name="android:colorAccent">@color/accent</item>
</style>
你可以附上你想要什么和你得到的一些截图吗? –