Android 错误呈现NumberPicker的AlertDialog

Android 错误呈现NumberPicker的AlertDialog,android,rendering,android-alertdialog,numberpicker,Android,Rendering,Android Alertdialog,Numberpicker,我在AlertDialog中使用我的NumberPicker进行“渲染”时遇到问题。 我向您展示代码: //setup del dialog AlertDialog.Builder builder = new AlertDialog.Builder(activity); builder.setCancelable(false); final NumberPicker

我在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();
问题在于,我们不希望出现这样的结果:


我有一个结果:

蓝线选择器太长,我想要与我创建此主题的第一张图片相同的长度:

这说明了如何解决此问题,解决方案是:

而不是这个

android:layout_width="match_parent"
你应该使用

android:layout_width="wrap_content"
android:layout_gravity="center"

问题是我没有一个布局(我自己为这个numberpicker制作),所以我需要以编程方式设置这个参数,但我不知道如何设置。

对不起,我之前误解了。您只需要创建一个父视图,并使用wrap_内容将选择器放在其中。以下是如何在代码中实现这一点:

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);

你的代码和注释应该是英文的,以便让包括你在内的每个人都能理解(想象一下中文注释,对你来说毫无价值)代码是英文的。关于弹出窗口?试着打开一点你的想象。干杯