2014-12-03 89 views
3

我有一个'呈现'与我的NumberPicker AlertDialog内的问题。
我展示给你的代码: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(); 

问题是不是有这样的结果:
enter image description here

我有这样的结果:
enter image description here
蓝线选择太长,我想第一张图片的相同长度
我创建了这个主题:
NumberPicker rendered incorrectly in a Dialog
,解释如何解决这个问题,解决方案是:

代替本

android:layout_width="match_parent" 

您应该使用

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

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

+0

你的代码和注释应是英文的,为了让每一个身体明白,包括你(想象一下中国的评论,这是毫无价值的你) – 2015-10-18 10:43:54

+0

代码是英文的。关于弹出窗口?尽量打开你的想象力。干杯。 – 2015-10-18 12:20:08

回答

13

对不起,我误解了。你只需要创建一个父视图,并使用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);