2012-07-30 2 views
6

Kindda 이상한 상황에서 대화 형보기 후클릭 후 민감한 영역 내가 그와 관련된 클릭 상호 작용이있는 이미지 뷰를 가지고 ... 애니메이션과 안드로이드

을 변경하지 않습니다.

코드에서 나는 애니메이션을 통해 ImageView의 위치를 ​​변경합니다.

그러나 애니메이션이 끝나면 클릭 가능한 영역은 여전히 ​​ImageView의 원래 위치에 있습니다 (실제로 해당 영역을 탭하여 처리중인 클릭을 볼 수 있음).

일부 연구는 애니메이션이보기 픽셀을 움직이는 것처럼 보였지만보기는 원래의 위치로 유지됩니다.

안드로이드에 대한 비판의 비트로서 - 이것은 직관적 인 디자인/구현이 아닙니다. 이것은 "당신이 보는 것은 당신 것이 무엇입니까?" 기준을 따르지 않습니다.

그리고 제 질문은

뷰 픽셀이있는 곳을 클릭 가능한 영역 이동을하는 (두 개의 서로 다른 ImageViews 사이에 전환 제외) 방법이 무엇입니까?

내 레이아웃 및 애니메이션 xml 구조는 다음과 같습니다.

레이아웃 :

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

애니메이션 :

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

여기에서 레이아웃 화면 하단에 정렬하고 원활하게 전환 할 필요가있다 - 숨겨 지거나 도시. "bar_handle"ImageView는 토글 링을 처리합니다. "bar_handle"은 움직이는 구조 내부에 있으므로 움직입니다.

도움 주셔서 감사합니다.

답변

2

보기 애니메이션보기의 실제 위치를 변경, 그래서 당신이 정말로 위치를 변경하려는 경우, 예를 들어

스스로를 스크롤로 사용하지 않습니다 사용 scrollTo, scrollBy 또는 당신이 원하는 경우 그것은 자동으로 스크롤, scroller를 사용하면 그렇게 할 수 있습니다.

+1

감사합니다. @Changwei Yao. 이는 아마 여러보기를 유지하지 않고 수행 할 수있는 유일한 방법이지만 항목을 스크롤하면 애니메이션 결과를 취소해야하는 등보기가 더 이동됩니다. 공학에 대한 것 같습니다. –

관련 문제