2014-12-03 49 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);