El arsenal de Android – Vistas de lista

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

.

Compruebe también

en vivo desde Droidcon, incluida la mayor actualización de Gemini en Android Studio y más lanzamientos del SDK de Android.

Acabamos de lanzar nuestro episodio de otoño de #TheAndroidShow en YouTube etcétera desarrollador.android.comy esta vez …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *