Android DialogFragment显示屏幕的黑色部分索尼Xperia U.

时间:2013-07-04 21:09:33

标签: android-dialogfragment

我在游戏中使用DialogFragments获取一些弹出信息。它在运行Android 4.2的LG Nexus 4上工作正常,它在运行2.3的Desire S上运行良好。

但它在Sony Xperia U(运行4)上无法正常运行。以下是发生的事情:

black spaces under dialogfragment

它不会将对话框置于屏幕中间,这会在所有其他设备上发生,但它也会在对话框下方的屏幕上呈现一个黑色的大部分。

这是我的代码:

public void ShowMessage(String title, String msg)
{
    Bundle b = new Bundle();
    b.putString("title", title);
    b.putString("msg", msg);
    DialogFragment dialog = new DialogFragment_MsgBox();
    dialog.setArguments(b);
    dialog.show(getSupportFragmentManager(), "msgbox");
}

public class DialogFragment_MsgBox extends android.support.v4.app.DialogFragment {

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    Bundle b = getArguments();
    final Dialog dialog = new Dialog(getActivity(), R.style.SetmsgDialog);
    dialog.setContentView(R.layout.simpleokdialog);
    if(b.containsKey("title"))
        dialog.setTitle(b.getString("title"));
    else
        dialog.setTitle("Message");
    return dialog;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.simpleokdialog, container, false);

    Bundle b = getArguments();
    String msg = "";
    if(b.containsKey("msg"))
    {
        msg = b.getString("msg");
    }

    TextView text = (TextView)v.findViewById(R.id.bericht);
    text.setText(msg);


    Button iv = (Button)v.findViewById(R.id.simpleOK);
    iv.setOnClickListener(new Button.OnClickListener() {
        public void onClick(View v) {
            // When button is clicked, call up to owning activity.
            getDialog().dismiss();
        }
    });

    // TODO Auto-generated method stub
    return v;
}

}

并且还需要我用于dialogfragment的样式:

<style name="SetmsgDialog">
        <item name="android:background">#aac6775c</item> 
        <item name="android:textColor">@android:color/white</item>
        <item name="android:windowNoTitle">false</item>
        <item name="android:textSize">14sp</item>
        <item name="android:windowIsFloating">true</item>

        <item name="android:windowTitleStyle">@style/setwindowTitleStyle</item>
        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
        <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
        <item name="android:backgroundDimEnabled">true</item>
        <item name="android:gravity">left</item>
    </style>

这会导致什么?有关此问题的任何解决方案/提示或建议吗?

1 个答案:

答案 0 :(得分:1)

我最终解决了这个问题,似乎有些手机/提供商软件在标准主题等方面有不同的行为。(我再次看到这个与索尼的文字是白色的,白色背景上有阴影,看起来很讨厌,现在再次使用索尼,不同的行为)所以如果你做了一些主题,你在使用自己的时候总是这样做,而不是填写所有的变量,使用所有变量得到预期的结果!

我'忘记了':

<item name="android:windowBackground">@android:color/transparent</item>

sony xperia U使用黑色而没有透明度,而nexus 4和欲望S使用透明色。