<io.github.library.IndexBar
android:id="@+id/index_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:clickable="true"
android:focusable="true"
app:index_array="@array/example"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:selected_bg_color="@color/teal_200"
app:text_color="@color/white"
app:text_padding="2dp"
app:text_size="10sp" />
<!-- 索引文字大小-->
<attr name="text_size" format="dimension" />
<!-- 索引文字颜色-->
<attr name="text_color" format="color" />
<!-- 索引数组-->
<attr name="index_array" format="string" />
<!-- 索引文字上下间距-->
<attr name="text_padding" format="dimension" />
<!-- 索引选中背景颜色-->
<attr name="selected_bg_color" format="color" />
app:index_array="@array/example"
/**
* 设置索引资源
*/
fun setIndexResource(indexList: MutableList<String>) {
mIndexList.clear()
for (s in indexList) {
mIndexList.add(IndexEntity().apply {
text = s
})
}
calculate()
invalidate()
}
app:text_size="10sp"
/**
* 设置索引字体大小
*
* @param textSize sp
*/
fun setIndexTextSize(textSize: Float) {
mIndexTextSize = textSize
mIndexTextPaint.textSize = sp2px(context, mIndexTextSize).toFloat()
calculate()
invalidate()
}
app:text_color="@color/white"
/**
* 设置索引文字颜色
*
* @param textColor
*/
fun setIndexTextColor(textColor: Int) {
mIndexTextColor = textColor
mIndexTextPaint.color = mIndexTextColor
invalidate()
}
app:text_padding="2dp"
/**
* 设置索引文字间距
*
* @param textPadding dp
*/
fun setIndexTextPadding(textPadding: Float) {
mIndexTextPadding = textPadding
calculate()
invalidate()
}
app:selected_bg_color="@color/teal_200"
/**
* 设置选中索引背景颜色
*
* @param selectedBgColor
*/
fun setSelectedBgColor(selectedBgColor: Int) {
mIndexSelectedBgColor = selectedBgColor
mIndexSelectedBgPaint.color = mIndexSelectedBgColor
invalidate()
}
/**
* 设置索引选中监听
*
* @param indexListener
*/
fun setIndexListener(indexListener: IndexListener) {
mIndexListener = indexListener
}