DialogFragment样式在以编程方式生成但不以XML样式生效

时间:2016-09-14 08:33:21

标签: android

我为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");


        }
    });

0 个答案:

没有答案