AlertDialog с NumberPicker отображается неправильно

У меня проблема с "рендерингом" с моим NumberPicker внутри AlertDialog.
Я покажу вам код:

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

проблема заключается в том, что вместо того, чтобы иметь такой результат:
enter image description here

У меня есть этот результат:
enter image description here
Селектор синей линии слишком длинный, мне бы хотелось, чтобы одна и та же длина первого изображения
я основал эту тему:
NumberPicker отображается неправильно в диалоге
которые объясняют, как решить эту проблему, и решение:

вместо этого

android:layout_width="match_parent"

Вы должны использовать

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

проблема в том, что у меня нет макета (сделанного мной для этого числа), поэтому мне нужно установить эти параметры программно, но я не знаю, как это сделать.

Ответ 1

Извините, я неправильно понял раньше. Вам просто нужно создать родительское представление и поместить в него свой сборщик, используя 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);