2012-07-30 32 views
6

Tình huống kỳ lạ Kindda ...Khu vực nhạy cảm không thay đổi sau khi hoạt ảnh và chế độ xem tương tác trong android

Tôi có một tương tác nhấp chuột liên kết với nó.

Trong mã tôi thay đổi vị trí của ImageView thông qua hoạt ảnh.

Nhưng khi hoạt ảnh kết thúc khu vực có thể nhấp vẫn ở vị trí ban đầu của ImageView (tôi thực sự có thể nhấn vào khu vực đó và thấy nhấp chuột đang được xử lý).

Đã thực hiện một số nghiên cứu, dường như hoạt ảnh chỉ di chuyển điểm ảnh xung quanh, chế độ xem vẫn ở vị trí ban đầu.

Như một chút chỉ trích đối với Android - đây không phải là thiết kế/triển khai trực quan. Điều này không phù hợp với "Những gì bạn thấy là những gì bạn nhận được" tiêu chí.

Và câu hỏi của tôi là

được Có cách nào (ngoại trừ chuyển đổi qua lại giữa hai ImageViews khác nhau) để làm cho khu vực di chuyển nhấp được đến nơi mà các điểm ảnh nhìn là?

Bố cục xml và bố cục hình ảnh động của tôi như sau.

bố trí:

<?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> 

Animation:

<?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> 

Tại đây bố trí được sắp xếp ngay phía dưới màn hình và cần phải được thông suốt toggled - ẩn hoặc hiển thị. "bar_handle" ImageView xử lý việc chuyển đổi. "bar_handle" nằm bên trong cấu trúc hoạt hình, vì vậy nó di chuyển với nó.

Cảm ơn bạn đã được trợ giúp.

Trả lời

2

The View Animation không làm thay đổi thực tế vị trí của các quan điểm, vì vậy nếu bạn muốn thực sự thay đổi vị trí, cố gắng sử dụng di chuyển nó cho mình

ví dụ: sử dụng scrollTo, scrollBy hoặc nếu bạn muốn nó cuộn tự động, bạn có thể sử dụng cuộn để giúp bạn làm điều đó.

+1

Cảm ơn @Changwei Yao. Đó có lẽ là cách duy nhất để thực hiện mà không cần duy trì nhiều chế độ xem, nhưng việc cuộn một mục sẽ tiếp tục di chuyển chế độ xem sao cho kết quả hoạt ảnh cần được hoàn tác. Có vẻ như một chút về kỹ thuật. –

Các vấn đề liên quan