如何在构建较低操作系统版本时修复对话框变形?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在构建较低操作系统版本时修复对话框变形?相关的知识,希望对你有一定的参考价值。
我在我的android手机中运行我的Android应用程序,这是OS 8.1 Oreo,它似乎没有对话的问题,但当我安装/构建到其他手机,这是Android棒棒糖,对话框变形为其原始大小。
见下图。
Please click for the image (Error design deform)
对话的源代码
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.dialogue_dash_date_picker);
final Spinner spinner = dialog.findViewById(R.id.typeViewSpinner);
Button btnDismiss = dialog.findViewById(R.id.btnOK);
String viewType = ViewTypeSingleton.getInstance().getTypeview();
if (viewType.equals(""))
spinner.setSelection(0);
else if (viewType.equals("Day"))
spinner.setSelection(1);
else if (viewType.equals("Week"))
spinner.setSelection(2);
else if (viewType.equals("Month"))
spinner.setSelection(3);
else if (viewType.equals("Year"))
spinner.setSelection(4);
else if (viewType.equals("All"))
spinner.setSelection(5);
btnDismiss.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
dialog.dismiss();
String choosen = spinner.getSelectedItem().toString();
ViewTypeSingleton.getInstance().setTypeview(choosen);
message.success(""+choosen,context);
fragmentRedirection(new fragment_main());
);
dialog.create();
dialog.show();
请帮我解决这个问题。
谢谢
答案
将此样式添加到style.xml
中
<style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog">
<item name="android:windowBackground">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
</style>
并像这样创建对话框
final Dialog dialog = new Dialog(context, R.style.MyDialogTheme);
另一答案
请尝试使用以下方式设置对话框的高度和宽度:
Dialog dialog = new Dialog(context,android.R.style.Theme_Translucent_NoTitleBar);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.YOUR_LAYOUT);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
lp.gravity = Gravity.CENTER;
dialog.getWindow().setAttributes(lp);
dialog.show();
以上是关于如何在构建较低操作系统版本时修复对话框变形?的主要内容,如果未能解决你的问题,请参考以下文章
如何在具有较高 iOS 的设备上调试具有较低 SDK 的 iOS 应用程序构建
photoshopCS3在操作时,要操作第二个命令后,上一步的操作才生效,请问这是啥问题?刚刚重装过系统也这