1414 */
1515final class WheelOptions {
1616 private final CharacterPickerView view ;
17- private LoopView wv_option1 ;
18- private LoopView wv_option2 ;
19- private LoopView wv_option3 ;
17+ private LoopView wvOption1 ;
18+ private LoopView wvOption2 ;
19+ private LoopView wvOption3 ;
2020
2121 private List <String > mOptions1Items ;
2222 private List <List <String >> mOptions2Items ;
2323 private List <List <List <String >>> mOptions3Items ;
2424 private OnOptionChangedListener mOnOptionChangedListener ;
2525
26+ private float maxTextSize ;
27+
2628 public View getView () {
2729 return view ;
2830 }
@@ -52,13 +54,13 @@ public void setPicker(List<String> options1Items,
5254 this .mOptions2Items = options2Items == null ? new ArrayList <List <String >>() : options2Items ;
5355 this .mOptions3Items = options3Items == null ? new ArrayList <List <List <String >>>() : options3Items ;
5456 // 选项1
55- wv_option1 = ( LoopView ) view .findViewById (R .id .j_options1 );
56- wv_option1 .setItems (mOptions1Items );// 设置显示数据
57+ wvOption1 = view .findViewById (R .id .j_options1 );
58+ wvOption1 .setItems (mOptions1Items );// 设置显示数据
5759 //设置是否循环播放
58- wv_option1 .setNotLoop ();
60+ wvOption1 .setNotLoop ();
5961
6062 //滚动监听
61- wv_option1 .setListener (new OnItemSelectedListener () {
63+ wvOption1 .setListener (new OnItemSelectedListener () {
6264 @ Override
6365 public void onItemSelected (int index ) {
6466 if (index == -1 ) {
@@ -69,19 +71,19 @@ public void onItemSelected(int index) {
6971 return ;
7072 }
7173
72- wv_option2 .setItems (mOptions2Items .get (index ));
73- wv_option2 .setCurrentPosition (0 );
74+ wvOption2 .setItems (mOptions2Items .get (index ));
75+ wvOption2 .setCurrentPosition (0 );
7476 }
7577 });
7678
7779 // 选项2
78- wv_option2 = ( LoopView ) view .findViewById (R .id .j_options2 );
80+ wvOption2 = view .findViewById (R .id .j_options2 );
7981 if (!mOptions2Items .isEmpty ()) {
80- wv_option2 .setItems (mOptions2Items .get (0 ));// 设置显示数据
82+ wvOption2 .setItems (mOptions2Items .get (0 ));// 设置显示数据
8183 //设置是否循环播放
82- wv_option2 .setNotLoop ();
84+ wvOption2 .setNotLoop ();
8385 //滚动监听
84- wv_option2 .setListener (new OnItemSelectedListener () {
86+ wvOption2 .setListener (new OnItemSelectedListener () {
8587 @ Override
8688 public void onItemSelected (int index ) {
8789 if (index == -1 ) {
@@ -92,38 +94,44 @@ public void onItemSelected(int index) {
9294 return ;
9395 }
9496
95- if (wv_option1 .getSelectedItem () < mOptions3Items .size ()) {
96- List <List <String >> allItems3 = mOptions3Items .get (wv_option1 .getSelectedItem ());
97+ if (wvOption1 .getSelectedItem () < mOptions3Items .size ()) {
98+ List <List <String >> allItems3 = mOptions3Items .get (wvOption1 .getSelectedItem ());
9799 if (index >= allItems3 .size ()) {
98100 index = 0 ;
99101 }
100- wv_option3 .setItems (allItems3 .get (index ));
101- wv_option3 .setCurrentPosition (0 );
102+ wvOption3 .setItems (allItems3 .get (index ));
103+ wvOption3 .setCurrentPosition (0 );
102104 }
103105 }
104106 });
105107 }
106108
107109 // 选项3
108- wv_option3 = ( LoopView ) view .findViewById (R .id .j_options3 );
110+ wvOption3 = view .findViewById (R .id .j_options3 );
109111 if (!mOptions3Items .isEmpty ()) {
110- wv_option3 .setItems (mOptions3Items .get (0 ).get (0 ));// 设置显示数据
111- wv_option3 .setCurrentPosition (0 );// 初始化时显示的数据
112+ wvOption3 .setItems (mOptions3Items .get (0 ).get (0 ));// 设置显示数据
113+ wvOption3 .setCurrentPosition (0 );// 初始化时显示的数据
112114 //设置是否循环播放
113- wv_option3 .setNotLoop ();
115+ wvOption3 .setNotLoop ();
114116 //滚动监听
115- wv_option3 .setListener (new OnItemSelectedListener () {
117+ wvOption3 .setListener (new OnItemSelectedListener () {
116118 @ Override
117119 public void onItemSelected (int index ) {
118120 doItemChange ();
119121 }
120122 });
121123 }
122124
123- if (mOptions2Items .isEmpty ())
125+ if (mOptions2Items .isEmpty ()) {
124126 view .findViewById (R .id .j_layout2 ).setVisibility (View .GONE );
125- if (mOptions3Items .isEmpty ())
127+ }
128+ if (mOptions3Items .isEmpty ()) {
126129 view .findViewById (R .id .j_layout3 ).setVisibility (View .GONE );
130+ }
131+
132+ if (maxTextSize > 0 ) {
133+ setMaxTextSize (maxTextSize );
134+ }
127135
128136 // 初始化时显示的数据
129137 setCurrentPositions (0 , 0 , 0 );
@@ -134,9 +142,9 @@ public void onItemSelected(int index) {
134142 */
135143 private void doItemChange () {
136144 if (mOnOptionChangedListener != null ) {
137- int option1 = wv_option1 .getSelectedItem ();
138- int option2 = wv_option2 .getSelectedItem ();
139- int option3 = wv_option3 .getSelectedItem ();
145+ int option1 = wvOption1 .getSelectedItem ();
146+ int option2 = wvOption2 .getSelectedItem ();
147+ int option3 = wvOption3 .getSelectedItem ();
140148 mOnOptionChangedListener .onOptionChanged (option1 , option2 , option3 );
141149 }
142150 }
@@ -145,17 +153,17 @@ private void doItemChange() {
145153 * 设置是否循环滚动
146154 */
147155 public void setCyclic (boolean cyclic ) {
148- wv_option1 .setLoop (cyclic );
149- wv_option2 .setLoop (cyclic );
150- wv_option3 .setLoop (cyclic );
156+ wvOption1 .setLoop (cyclic );
157+ wvOption2 .setLoop (cyclic );
158+ wvOption3 .setLoop (cyclic );
151159 }
152160
153161 @ Deprecated
154162 public int [] getCurrentItems () {
155163 int [] currentItems = new int [3 ];
156- currentItems [0 ] = wv_option1 .getSelectedItem ();
157- currentItems [1 ] = wv_option2 .getSelectedItem ();
158- currentItems [2 ] = wv_option3 .getSelectedItem ();
164+ currentItems [0 ] = wvOption1 .getSelectedItem ();
165+ currentItems [1 ] = wvOption2 .getSelectedItem ();
166+ currentItems [2 ] = wvOption3 .getSelectedItem ();
159167 return currentItems ;
160168 }
161169
@@ -164,9 +172,9 @@ public int[] getCurrentItems() {
164172 */
165173 public int [] getCurrentPositions () {
166174 int [] currentItems = new int [3 ];
167- currentItems [0 ] = wv_option1 .getSelectedItem ();
168- currentItems [1 ] = wv_option2 .getSelectedItem ();
169- currentItems [2 ] = wv_option3 .getSelectedItem ();
175+ currentItems [0 ] = wvOption1 .getSelectedItem ();
176+ currentItems [1 ] = wvOption2 .getSelectedItem ();
177+ currentItems [2 ] = wvOption3 .getSelectedItem ();
170178 return currentItems ;
171179 }
172180
@@ -181,14 +189,23 @@ public void setCurrentPositions(int option1, int option2, int option3) {
181189 option3 = 0 ;
182190 }
183191
184- if (wv_option1 .getSelectedItem () == -1 ) {
185- wv_option1 .setInitPosition (option1 );
186- wv_option2 .setInitPosition (option2 );
187- wv_option3 .setInitPosition (option3 );
192+ if (wvOption1 .getSelectedItem () == -1 ) {
193+ wvOption1 .setInitPosition (option1 );
194+ wvOption2 .setInitPosition (option2 );
195+ wvOption3 .setInitPosition (option3 );
188196 } else {
189- wv_option1 .setCurrentPosition (option1 );
190- wv_option2 .setCurrentPosition (option2 );
191- wv_option3 .setCurrentPosition (option3 );
197+ wvOption1 .setCurrentPosition (option1 );
198+ wvOption2 .setCurrentPosition (option2 );
199+ wvOption3 .setCurrentPosition (option3 );
200+ }
201+ }
202+
203+ public void setMaxTextSize (float dpValue ) {
204+ maxTextSize = dpValue ;
205+ if (wvOption1 != null ) {
206+ wvOption1 .setMaxTextSize (dpValue );
207+ wvOption2 .setMaxTextSize (dpValue );
208+ wvOption3 .setMaxTextSize (dpValue );
192209 }
193210 }
194211}
0 commit comments