我对EditText的ContextMenu的样式有疑问。
我创建了新的Dialog:
Dialog newServerDialog = new Dialog(getContext(), R.style.CustomDialogStyleServerDetails);
newServerDialog.setContentView(newServerDialogLayout);
newServerDialog.setTitle(R.string.server_details_new_title_text);
newServerDialog.getWindow().setLayout(
android.view.ViewGroup.LayoutParams.FILL_PARENT,
android.view.ViewGroup.LayoutParams.WRAP_CONTENT);
newServerDialog.setCancelable(true);
这是 CustomDialogStyleServerDetails 样式:
<style name="CustomDialogStyleServerDetails" parent="@android:style/Theme.Dialog">
<item name="android:background">@drawable/server_details_background_repeat</item>
<item name="android:windowTitleStyle">@style/DialogWindowTitle</item>
</style>
和 DialogWindowTitle 样式
<style name="DialogWindowTitle">
<item name="android:maxLines">1</item>
<item name="android:scrollHorizontally">true</item>
<item name="android:textAppearance">@style/customDialogTextAppearance</item>
<item name="android:gravity">center_horizontal|center_vertical</item>
<item name="android:background">@drawable/server_details_title_background_repeat</item>
</style>
Dialog看起来像我想要的:(对不起,但我还不能发布图片)
但EditText的ContextMenu从我的对话框中获取样式
有什么办法,如何将默认样式设置为ContextMenu?
我没有找到任何解决这个问题的方法
所有帮助将不胜感激!
谢谢。
编辑:我的解决方案:创建一个扩展Dialog的自定义类(称为DialogServer)
编辑#2:不,看起来这不是正确的解决方案。
我尝试了这个构造函数:
public DialogServer(Context context, int theme)
问题仍然存在
使用此构造函数:
public DialogServer(Context context)
contextmenu的风格没问题,但对话框的风格已经消失。
答案 0 :(得分:2)
尝试使用自定义主题包装
ContextThemeWrapper mTheme = new ContextThemeWrapper(this,
R.style.CustomDialogStyleServerDetails);
代码段为: -
mInflater = (LayoutInflater) getBaseContext().getSystemService(
LAYOUT_INFLATER_SERVICE);
ContextThemeWrapper mTheme = new ContextThemeWrapper(this,
R.style.CustomDialogStyleServerDetails);
mView = mInflater.inflate(R.layout.YOUR_XML_LAYOUT_FILE, null);
mDialog = new Dialog(mTheme);
mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
mDialog.setContentView(this.mView);
mDialog.show();
希望这个解释很有用......