ArcView es una biblioteca de Android para mostrar la lista como un arco
Instalación
- Gradle Agregar a su raíz
build.gradle
al final de los repositorios:allprojects { repositorio { ... maven {url & # 39; https: //jitpack.io'} } }
agregar dependencia
dependencias { implementación & # 39; com.github.amir5121: arcView: TAG & # 39; }
- Otras formas de agregarlo
Uso
layout.xml
MainActivity.kt
paquete com.amir.arclistview
importar android.os.Bundle
importar android.util.Log
importar android.view.View
importar androidx.appcompat.app.AppCompatActivity
importar com.amir.arcview.ArcLinearLayout
importe kotlinx.android.synthetic.main.activity_main. * *
importe kotlinx.android.synthetic.main.include_arc_button. * *
clase MainActivity: AppCompatActivity (), View.OnClickListener {
Private val TAG: String = "MainActivity"
privado lateinit var strokeArc: ArcLinearLayout
private lateinit var shadowArc: ArcLinearLayout
anular la diversión onCreate (savedInstanceState: Bundle?) {
super.onCreate (savedInstanceState)
setContentView (R.layout.activity_main)
kick_me.setOnClickListener (esto)
kick_swapped.setOnClickListener (esto)
include_buttons_stroke.setOnClickListener (esto)
include_buttons_shadow.setOnClickListener (esto)
strokeArc =
layoutInflater.inflate (
R.layout.stroke_arc_linear_layout,
include_arc_buttons_temp_arc,
falso
) como ArcLinearLayout
shadowArc =
layoutInflater.inflate (
R.layout.shadow_arc_linear_layout,
include_arc_buttons_temp_arc,
falso
) como ArcLinearLayout
}
anular diversión onClick (v: ¿Ver?) {
cuando V) {
kick_me -> {
if (include_buttons_scroll_view.isKnockedIn) {
include_buttons_scroll_view.knockout ()
} otro {
include_buttons_scroll_view.knockIn ()
}
}
kick_swapped -> {
Log.wtf (TAG, "onClick: intercambiado")
include_arc_buttons_temp_arc.swapView (nulo)
}
include_buttons_shadow -> {
include_arc_buttons_temp_arc.swapView (shadowArc)
}
include_buttons_stroke -> {
include_arc_buttons_temp_arc.swapView (strokeArc)
}
}
}
}
API
estilos
ArcScrollView
radio: dimensión = define el radio del círculo dibujado
stroke_width: dimension = define la parte del círculo que debería ser visible
findBestWidth: boolean = permite que ArcScrollView decida el ancho
ArcLinearLayout
useMinPadding: boolean = agrega relleno adicional a la parte superior e inferior de los elementos si se establece en verdadero, no agregará ningún relleno adicional
itemsOffset: dimension = cuánto deben escalonarse los objetos en ArcLinearLayout desde la parte superior del arco
¿Qué se necesita implementar?
Actualmente no es compatible con la rotación de pantalla. Si se solicita esta función, trabajaré en ella.
Contribución
Las solicitudes de extracción son bienvenidas. Para cambios importantes, abra primero un problema para discutir lo que le gustaría cambiar.
Asegúrese de actualizar las pruebas adecuadamente.
Licencia
GNU
.