我在游戏中使用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>
这会导致什么?有关此问题的任何解决方案/提示或建议吗?
答案 0 :(得分:1)
我最终解决了这个问题,似乎有些手机/提供商软件在标准主题等方面有不同的行为。(我再次看到这个与索尼的文字是白色的,白色背景上有阴影,看起来很讨厌,现在再次使用索尼,不同的行为)所以如果你做了一些主题,你在使用自己的时候总是这样做,而不是填写所有的变量,使用所有变量得到预期的结果!
我'忘记了':
<item name="android:windowBackground">@android:color/transparent</item>
sony xperia U使用黑色而没有透明度,而nexus 4和欲望S使用透明色。