我的所有主题都在我的dialogfragment背景下工作。 我试着让我的dialogFragment背景变黑,但我做错了。
这是我到目前为止在主题xml中所得到的(请注意,我将其顶部和底部封顶):
<style name="easydealtheme" parent="@style/_easydealtheme"/>
<style name="_easydealtheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:editTextBackground">@drawable/easydealtheme_edit_text_holo_light</item>
<item name="android:dropDownListViewStyle">@style/Listviewdropdowneasydealtheme</item>
<item name="android:textViewStyle">@style/Textvieweasydealtheme</item>
<item name="android:editTextStyle">@style/Edittexteasydealtheme</item>
<item name="android:alertDialogTheme">@style/Dialogeasydealtheme</item>
...
以下是我在对话框的样式xml中得到的内容:
<style name="Dialogeasydealtheme" parent="android:Theme.Holo.Dialog">
<item name="android:textColor">#FFFFFF</item>
<item name="android:windowBackground">@color/test</item>
</style>
以下是显示dialogFragment:
的代码 public static void ShowPhotoDialog(String title,File photoFile, FragmentManager fragM)
{
FragmentPhotoDialog photoD = new FragmentPhotoDialog();
FragmentTransaction fTX = fragM.BeginTransaction();
photoD.SetStyle(DialogFragmentStyle.NoFrame, EasyDeal_Android.Resource.Style.easydealtheme);
photoD.SetTile(title);
photoD.SetPhotoFile(photoFile);
photoD.Show(fTX, "Dialog");
}
此处结果不起作用(白色应为黑色):
答案 0 :(得分:7)
在我遇到解决方案之前,我疯狂地找到了这个问题的解决方案。
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Setup the layout
LayoutInflater inflater = getActivity().getLayoutInflater();
final View root = inflater.inflate(*"YOUR LAYOUT"*, null);
root.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
//Customizing the dialog features
final Dialog dialog = new Dialog(getActivity());
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(root);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(getResources().getColor(*"YOUR SELECTED COLOR"*)));
dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
return dialog;
}
答案 1 :(得分:2)
尝试将警告对话框背景更改为
<style name="Dialogeasydealtheme" parent="android:Theme.Holo.Dialog">
<item name="android:textColor">#FFFFFF</item>
<item name="android:background">@color/black</item>
</style>
如果发现任何问题,请告诉我。
答案 2 :(得分:-1)
我找到了一个不是我最喜欢的解决方案,但它会做到。
我在布局中添加了背景。这是我的主要linearLayout上的代码:
<LinearLayout xmlns:p1="http://schemas.android.com/apk/res/android"
p1:orientation="vertical"
p1:minWidth="25px"
p1:minHeight="25px"
p1:layout_width="match_parent"
p1:layout_height="match_parent"
p1:id="@+id/liDialogPhoto"
p1:background="@drawable/easydealtheme_tilesbg">
我现在可以继续使用没有彩色背景的画框了!
感谢您的帮助!