HorizontalPicker
介绍:
一个横向的单选控件,选项可以是文字或者图标+文字,支持滑动选择。
运行效果:
使用说明:
Gradle 依赖
在项目的build.gradle文件中添加:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
添加依赖:
dependencies {
compile 'com.github.GoodieBag:HorizontalPicker:v1.0'
}
XML :
<com.goodiebag.horizontalpicker.HorizontalPicker
android:id="@+id/hpicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:textSize="18sp"
app:itemMargin="5dp"
app:itemHeight="40dp"
app:itemWidth="40dp"
app:backgroundSelector="@drawable/selector_background_example"
app:textColorSelector="@color/selector_text_view"/>
ps: itemWidth 和 itemHeight 并不是必须的。如果忽略将默认为WRAP_CONTENT。
textColorSelector只有在item为textItem的时候可用。
Java :
//If your picker needs to have text as items :
HorizontalPicker hpText = (HorizontalPicker) findViewById(R.id.picker);
List<HorizontalPicker.PickerItem> textItems = new ArrayList<>();
for(int i=1;i<=4;i++){
textItems.add(new HorizontalPicker.TextItem("S"+i));
}
hpText.setItems(textItems,3); //3 here signifies the default selected item. Use : hpText.setItems(textItems) if none of the items are selected by default.
//If your picker takes images as items :
HorizontalPicker hpImage = (HorizontalPicker) findViewById(R.id.hpImage);
List<HorizontalPicker.PickerItem> imageItems = new ArrayList<>();
imageItems.add(new HorizontalPicker.DrawableItem(R.drawable.example));
imageItems.add(new HorizontalPicker.DrawableItem(R.drawable.example2));
hpImage.setItems(imageItems);
可以使用hpText.setSelectedIndex(index)手动选择一个item。
Listeners :
监听item选择的变化
HorizontalPicker.OnSelectionChangeListener listener = new HorizontalPicker.OnSelectionChangeListener() {
@Override
public void onItemSelect(HorizontalPicker picker, int index) {
HorizontalPicker.PickerItem selected = picker.getSelectedItem();
Toast.makeText(MainActivity.this, selected.hasDrawable() ? "Item at " + (picker.getSelectedIndex() + 1) + " is selected" : selected.getText() + " is selected", Toast.LENGTH_SHORT).show();
}
hpText.setChangeListener(listener);
滑动
已知问题 :
当HorizontalPicker在一个HorizontalScrollView中的时候,滑动选择操作不是预期的效果。
已下载
0