Skip to content
Aige edited this page Jul 12, 2016 · 3 revisions

注:我们不再提供对WheelPicker Beta版的技术支持,本文档仅作用于WheelPicker 1.1.0稳定版,请尽快升级到1.1.0

方法概览

  • int getVisibleItemCount();
  • void setVisibleItemCount(int count);
  • boolean isCyclic();
  • void setCyclic(boolean isCyclic);
  • void setOnItemSelectedListener(WheelPicker.OnItemSelectedListener listener);
  • int getSelectedItemPosition();
  • void setSelectedItemPosition(int position);
  • int getCurrentItemPosition();
  • List getData();
  • void setData(List data);
  • void setSameWidth(boolean hasSameSize);
  • boolean hasSameWidth();
  • void setOnWheelChangeListener(WheelPicker.OnWheelChangeListener listener);
  • String getMaximumWidthText();
  • void setMaximumWidthText(String text);
  • int getMaximumWidthTextPosition();
  • void setMaximumWidthTextPosition(int position);
  • int getSelectedItemTextColor();
  • void setSelectedItemTextColor(int color);
  • int getItemTextColor();
  • void setItemTextColor(int color);
  • int getItemTextSize();
  • void setItemTextSize(int size);
  • int getItemSpace();
  • void setItemSpace(int space);
  • void setIndicator(boolean hasIndicator);
  • boolean hasIndicator();
  • int getIndicatorSize();
  • void setIndicatorSize(int size);
  • int getIndicatorColor();
  • void setIndicatorColor(int color);
  • void setCurtain(boolean hasCurtain);
  • boolean hasCurtain();
  • int getCurtainColor();
  • void setCurtainColor(int color);
  • void setAtmospheric(boolean hasAtmospheric);
  • boolean hasAtmospheric();
  • boolean isCurved();
  • void setCurved(boolean isCurved);
  • int getItemAlign();
  • void setItemAlign(int align);
  • Typeface getTypeface();
  • void setTypeface(Typeface tf);

所有这些方法的详细介绍你都可以在IWheelPicker里找到

xml属性概览

  • wheel_data
  • wheel_selected_item_position
  • wheel_item_text_size
  • wheel_item_text_color
  • wheel_selected_item_text_color
  • wheel_same_width
  • wheel_maximum_width_text
  • wheel_maximum_width_text_position
  • wheel_visible_item_count
  • wheel_item_space
  • wheel_cyclic
  • wheel_indicator
  • wheel_indicator_color
  • wheel_indicator_size
  • wheel_curtain
  • wheel_curtain_color
  • wheel_atmospheric
  • wheel_curved
  • wheel_item_align

集成到项目

WheelPicker与系统自带的控件类似,一旦您将WheelPicker集成到你的项目中,你就可以像普通控件那样使用它:

  • 在xml文件中引用
<com.aigestudio.wheelpicker.WheelPicker
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
  • 在Java类文件中构造
FrameLayout flContainer = (FrameLayout) findViewById(R.id.container);
WheelPicker wheelPicker = new WheelPicker(this);
FrameLayout.LayoutParams flParams = new FrameLayout.LayoutParams
        (ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
flParams.gravity = Gravity.CENTER;
flContainer.addView(wheelPicker, flParams);

在默认情况下WheelPicker会显示一组默认数据:

如果你想设置自己的数据只需调用

void setData(List data);

方法传入一个List列表即可,WheelPicker不限制List列表中数据的类型,但是WheelPicker在绘制List列表中的数据时总是会将其中的数据转换为String类型

List<Integer> data = new ArrayList<>();
for (int i = 1000; i < 3000; i++)
    data.add(i);
wheelPicker.setData(data);

效果如下:

此时WheelPicker看起来也许不符合你的设计要求,不过不要担心,我们提供了一系列的方法来调整WheelPicker的外观,这些方法都被定义在IWheelPicker中,里面有详尽的注释提供参考,这里就不再多说了

WheelPicker提供了两种方式来获取当前选中的数据,第一种是直接通过getCurrentItemPosition得到当前选中数据在数据源中的位置,这种方式有一定的局限性,你必须在滚轮选择器静止的状态下才能获得正确的数据,如果你在滚轮选择器滑动时调用该方法,你会得到上一次滚轮静止时选中的数据;第二种获取选中数据的方法是通过监听器,WheelPicker提供了一个OnItemSelectedListener监听接口来监听滚轮数据被选中的状态,你可以调用WheelPicker的setOnItemSelectedListener方法为滚轮选择器设置一个监听器,当滚轮选择器在滑动后停止时会调用OnItemSelectedListener中的onItemSelected方法:

public interface OnItemSelectedListener {
    void onItemSelected(WheelPicker picker, Object data, int position);
}

该方法会将滚轮选择器对象、当前选中的数据以及当前选中数据在数据源中的位置返回。

衍生控件

通过继承或组合多个WheelPicker可以实现各种各样的滚轮选择器,WheelPicker将会在未来的时间里陆续更新不同的依赖于WheelPicker的选择器,当然我们也非常欢迎你加入衍生控件的开发

Clone this wiki locally