我对在 AlertDialog 中使用 NumberPicker 进行“呈现”有疑问。
我给你看代码:
//setup del dialog
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setCancelable(false);
final NumberPicker picker = new NumberPicker(activity);
picker.setMinValue(0);
picker.setMaxValue(5);
//set bottoni dialog
builder.setPositiveButton(R.string.dialog_btn_seleziona, seleziona);
builder.setNegativeButton(R.string.dialog_btn_annulla, null);
//visualizzo il dialog
Dialog dialog = builder.create();
dialog.show();
问题是,而不是得到这样的结果:
我有这个结果:
蓝线选择器太长了,我想要第一张图的长度
我创建了这个主题:
NumberPicker rendered incorrectly in a Dialog
解释了如何解决这个问题,解决方案是:
而不是这个
android:layout_width="match_parent"
你应该使用
android:layout_width="wrap_content"
android:layout_gravity="center"
问题是我没有布局(由我自己为这个数字选择器制作)所以我需要以编程方式设置这个参数,但我不知道如何设置。
最佳答案
对不起,我之前理解错了。您只需要创建一个父 View ,然后使用 wrap_content 将您的选择器放入其中。以下是您如何在代码中执行此操作:
final NumberPicker picker = new NumberPicker(activity);
picker.setMinValue(0);
picker.setMaxValue(5);
final FrameLayout parent = new FrameLayout(activity);
parent.addView(picker, new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.WRAP_CONTENT,
FrameLayout.LayoutParams.WRAP_CONTENT,
Gravity.CENTER));
builder.setView(parent);
关于android - 带有 NumberPicker 的 AlertDialog 呈现不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27263008/