El componente de Android realiza un deslizamiento hacia la izquierda para revelar el botón de operación derecho

1. El efecto final

Dilo de frente:

Este ejemplo no contiene bibliotecas de terceros, no integra ruedas y usa todos los componentes de la interfaz de usuario y los eventos estándar que vienen con Android.

La dirección de deslizamiento se puede modificar arbitrariamente y el efecto de deslizamiento se puede colocar en cualquier componente de Vista.

Veamos primero el efecto final. El azul en el lado izquierdo de la imagen de abajo es la vista después de deslizar hacia la izquierda, y los tres botones a la derecha son los botones de operación que se muestran después de deslizar:

dos ideas

1. Usando el efecto de orden de diseño de FrameLayout, los elementos del diseño posterior bloquearán los elementos del diseño anterior

2. Use un contenedor CardView, coloque el FrameLayout, la capa de oclusión en él, los botones de operación a continuación, etc. en este contenedor CardView para formar un componente general

3. Usa los eventos básicos de View:

- OnLongClickListener

- OnTouchListener

Cabe señalar que si solo implementa OnTouchListener pero no OnLongClickListener, el efecto deslizante no se puede activar.

3. Diseño de la interfaz de usuario

Echemos un vistazo a la jerarquía de todo el diseño de la interfaz de usuario:

Ignora esas advertencias...

En la capa más externa, usamos CardView como contenedor en CardView, colocamos un diseño FrameLayout y hacemos que el ancho y el alto de FrameLayout llenen CardView.

En la siguiente capa de FrameLayout, hay dos diseños de LinearLayout. Este será el primer punto que necesita atención. Debido a las características de FrameLayout, el LinearLayout agregado más tarde bloqueará el agregado primero.

Por lo tanto, en el LinearLayout que se agregó primero, se colocó un TextView para ocupar la posición, y luego se colocaron tres botones, estos tres botones son los botones de operación expuestos al deslizar hacia la izquierda.

En el LinearLayout que se agregó más tarde, dado que este ejemplo no involucra ningún negocio, solo se establece en un color azul brillante para facilitar la observación.

<androidx.cardview.widget.CardView
    android:id="@+id/CARD_VIEW_EFFECT"
    android:layout_width="0dp"
    android:layout_height="64dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="16dp"
    android:layout_marginEnd="8dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/TEXT_VIEW_TITLE" >

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:id="@+id/LINEAR_LAYOUT_DASHBOARD"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/textView5"
                android:layout_width="

Supongo que te gusta

Origin blog.csdn.net/freezingxu/article/details/123797322
Recomendado
Clasificación