DialogFragment 没有使用我想要的主题
DialogFragment is not using my desired theme
当使用不同的 Android 版本时,Android 中的主题和样式出现问题。
所以主要问题是我在应用程序中的某个时刻弹出了一个 DialogFragment,它包含一个 EditText
。 AlertDialog 是这样创建的:
AlertDialog dialog = new AlertDialog.Builder(getActivity())
.setPositiveButton ...
然后像这样创建和添加 EditText:
editor = new EditText(getActivity());
dialog.setView(editor);
在我的 Lollipop 设备上,EditText
有一条带有我想要的颜色的底线。 (下面列表中的 c1)。
但是在我的 Android 4.3 设备上,它有标准的难看的蓝色底线。
我的应用程序有一个应用程序主题,它定义了(除其他外)这些项目:
<item name="colorPrimary">@color/c1</item>
<item name="colorPrimaryDark">@color/c2</item>
<item name="colorAccent">@color/c3</item>
<item name="colorControlNormal">@color/c1</item>
<item name="colorControlActivated">@color/c2</item>
<item name="colorControlHighlight">@color/c3</item>
对话框片段是从 activity 继承此应用主题开始的,我总是使用常规的 getActivity() 作为上下文。
所以有没有人遇到过这种情况?我认为它应该自动使用正确的颜色(通过 colorControlNormal、colorControlActivated 和 colorControlHighlight)但是它们被忽略了。
我正在使用 appcompat 22.2.0
顺便说一句。
感谢您对此的任何意见!
我使用 android.support.v7.widget.AppCompatEditText
而不是常规的 Edittext 解决了这个问题。它现在使用正确的 Material 设计风格。
当使用不同的 Android 版本时,Android 中的主题和样式出现问题。
所以主要问题是我在应用程序中的某个时刻弹出了一个 DialogFragment,它包含一个 EditText
。 AlertDialog 是这样创建的:
AlertDialog dialog = new AlertDialog.Builder(getActivity())
.setPositiveButton ...
然后像这样创建和添加 EditText:
editor = new EditText(getActivity());
dialog.setView(editor);
在我的 Lollipop 设备上,EditText
有一条带有我想要的颜色的底线。 (下面列表中的 c1)。
但是在我的 Android 4.3 设备上,它有标准的难看的蓝色底线。
我的应用程序有一个应用程序主题,它定义了(除其他外)这些项目:
<item name="colorPrimary">@color/c1</item>
<item name="colorPrimaryDark">@color/c2</item>
<item name="colorAccent">@color/c3</item>
<item name="colorControlNormal">@color/c1</item>
<item name="colorControlActivated">@color/c2</item>
<item name="colorControlHighlight">@color/c3</item>
对话框片段是从 activity 继承此应用主题开始的,我总是使用常规的 getActivity() 作为上下文。
所以有没有人遇到过这种情况?我认为它应该自动使用正确的颜色(通过 colorControlNormal、colorControlActivated 和 colorControlHighlight)但是它们被忽略了。
我正在使用 appcompat 22.2.0
顺便说一句。
感谢您对此的任何意见!
我使用 android.support.v7.widget.AppCompatEditText
而不是常规的 Edittext 解决了这个问题。它现在使用正确的 Material 设计风格。