Kindda dziwnej sytuacji ...Obszar kliknięcie wrażliwych nie zmienia się po animacji i interaktywnych widzenia w Android
Mam ImageView który ma interakcji click z nim związane.
W kodzie zmienię pozycję ImageView za pośrednictwem animacji.
Po zakończeniu animacji obszar klikalny znajduje się nadal w oryginalnym miejscu obrazu ImageView (mogę dotknąć tego obszaru i zobaczyć obsługiwane kliknięcie).
Po przeprowadzeniu niektórych badań wydaje się, że animacja przesuwa tylko piksele widoku, a widok pozostaje taki, jaki był pierwotnie.
Krytyka dla Androida - to nie jest intuicyjny projekt/implementacja. To nie jest zgodne z "To, co widzisz, jest tym, co dostajesz". Kryteria są następujące:.
I moje pytanie jest
jest jakiś sposób (z wyjątkiem przełączanie pomiędzy dwoma różnymi ImageViews), aby przenieść się do klikalny obszar, gdzie widok piksele są?
Moje struktury struktury xml i animacji są następujące.
układ:
<?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>
Animacja:
<?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>
W tutaj układ jest wyrównany do dolnej części ekranu i musi być płynnie przełączane - ukryte lub widoczne. "bar_handle" ImageView obsługuje przełączanie. "bar_handle" znajduje się wewnątrz animowanej struktury, więc porusza się wraz z nią.
Dzięki za pomoc.
Dzięki @Changwei Yao. Jest to prawdopodobnie jedyny sposób, aby osiągnąć bez wielu widoków, ale przewijanie elementu spowoduje dalsze przesunięcie widoku w taki sposób, że wynik animacji musi zostać cofnięty. Wygląda na to, że trochę nadnaturalnie. –