【问题标题】:AlertDialog with NumberPicker rendered incorrectly带有 NumberPicker 的 AlertDialog 呈现不正确
【发布时间】:2015-01-31 12:02:29
【问题描述】:

我在 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"

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

【问题讨论】:

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

标签: android rendering android-alertdialog numberpicker


【解决方案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);

【讨论】:

    猜你喜欢
    • 2014-07-14
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 2014-02-24
    • 2015-08-09
    • 1970-01-01
    相关资源
    最近更新 更多