Kindda situación extraña ...El área de clic sensible no cambia después de la animación y la vista interactiva en Android
Tengo una ImageView que tiene un clic de interacción asociado a él.
En el código cambio la posición de ImageView mediante una animación.
Pero cuando finaliza la animación, el área en la que se puede hacer clic sigue en el lugar original de ImageView (realmente puedo tocar esa área y ver el clic que se está manejando).
Hice algunas investigaciones, parece que la animación solo mueve los píxeles de la vista, la vista permanece donde estaba originalmente.
Como un poco de crítica para Android, este no es un diseño/implementación intuitiva. Esto no concuerda con "Lo que ves es lo que obtienes" criterios.
Y mi pregunta es
¿Hay alguna manera (excepto alternar entre dos ImageViews diferentes) para hacer el movimiento área seleccionable a donde la vista píxeles son?
Mi diseño y animación Las estructuras xml son las siguientes.
diseño:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/keywords_layer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_margin="0dp"
android:padding="0dp"
android:orientation="vertical"
android:visibility="gone"
>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="35dp"
>
<ImageView
android:layout_width="fill_parent"
android:layout_height="35dp"
android:layout_centerInParent="true"
android:adjustViewBounds="false"
android:scaleType="fitXY"
android:src="@drawable/keyword_bar_handle"
/>
<ImageView
android:id="@+id/bar_handle"
android:layout_width="45dp"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:adjustViewBounds="false"
android:scaleType="fitXY"
/>
</RelativeLayout>
<HorizontalScrollView
android:layout_width="fill_parent"
android:layout_height="@dimen/browser_address_bar_1_5_height"
android:layout_margin="0dp"
android:padding="0dp"
android:background="@drawable/keyword_bar_bg"
android:scrollbars="none"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="@dimen/browser_address_bar_1_5_height"
android:layout_margin="0dp"
android:padding="0dp"
/>
</HorizontalScrollView>
Animación:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fillEnabled="true"
android:fillAfter="true">
<translate
android:fromYDelta="60"
android:toYDelta="0"
android:duration="300"
/>
</set>
En aquí la disposición se alinea a la parte inferior de la pantalla y necesita ser suavemente toggled - oculta o muestra. "bar_handle" ImageView maneja el alternar. "bar_handle" está dentro de la estructura animada, por lo que se mueve con ella.
Gracias por cualquier ayuda.
Gracias @Changwei Yao. Esa es probablemente la única forma de lograrlo sin mantener múltiples vistas, pero desplazar un elemento moverá aún más la vista, de modo que el resultado de la animación debe deshacerse. Parece un poco excesivo de ingeniería. –