我为DialogFragment
设置了这些设置,这些设置在以编程方式设置时非常有用!但是当我想要它们作为XML样式并希望将这种样式用于所有其他DialogFragments
时,它就不起作用了!我想要一个只能使用XML样式的解决方案。
以编程方式设置DialogFragment样式
@Override
public void onResume() {
super.onResume();
int x = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,250, getResources().getDisplayMetrics());
int y = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,250, getResources().getDisplayMetrics());
int p = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,10,getResources().getDisplayMetrics());
getDialog().getWindow().setLayout(x, y);
getDialog().getWindow().setBackgroundDrawableResource(R.drawable.popup_rounded_frame);
getDialog().getWindow().getDecorView().setPadding(p,p,p,p);
}
XML格式的DialogFragment样式
<style name="ArionDialogFragment" parent="@android:style/Theme.Holo.Light.Dialog">
<item name="android:height">100dp</item>
<item name="android:width">100dp</item>
<item name="android:maxWidth">100dp</item>
<item name="android:maxHeight">100dp</item>
<item name="android:windowBackground">@drawable/popup_rounded_frame</item>
<item name="android:padding">10dp</item>
</style>
这就是我启动DialogFragments的方式:
popuptest.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
PopUP popUP = new PopUP();
popUP.setStyle(DialogFragment.STYLE_NO_FRAME, R.style.ArionDialogFragment);
popUP.show(getSupportFragmentManager(),"d");
}
});