0
我正在努力讓動畫工作。我正在將一個搜索欄從屏幕中間移到屏幕頂部。動畫效果很好,但一旦移動,我就無法與任何東西互動。我已經更新了職位,但無法與其互動。下面是我到目前爲止有:更新動畫後的查看位置
private void moveSearchToTop()
{
FrameLayout root = (FrameLayout) findViewById(R.id.rootLayout);
DisplayMetrics dm = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(dm);
statusBarOffset = dm.heightPixels - root.getMeasuredHeight();
int originalPos[] = new int[2];
mSearchBar.getLocationOnScreen(originalPos);
search_top = statusBarOffset - originalPos[1];
TranslateAnimation anim = new TranslateAnimation(0, 0, 0, search_top);
anim.setDuration(500);
anim.setFillAfter(true);
anim.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
mSearchBar.layout(0, search_top, 0, mSearchBar.getHeight() + search_top);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
mSearchBar.startAnimation(anim);
}
和這裏的什麼觀點看起來像XML:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:id="@+id/search_bar"
android:background="@android:drawable/dialog_holo_light_frame">
<ImageView
android:id="@+id/search_icon"
android:layout_width="wrap_content"
android:onClick="onSearchClick"
android:layout_height="25dp"
android:layout_gravity="center_vertical"
android:src="@drawable/search"/>
<EditText
android:id="@+id/search_field"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:singleLine="true"
android:hint="Search"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="25dp"
android:layout_gravity="center_vertical"
android:src="@drawable/camera"/>
</LinearLayout>
我是否需要更新所有的子元素過多的位置?感謝您的正確位置。
您正在使用的,只是要改變出票,而不是實際位置的圖動畫。我相信有辦法欺騙它來移動實際的位置,但是我總是發現使用對象動畫製作者更容易開始,因爲它會更新實際位置,而無需做任何額外的事情。 – Whitney 2014-11-14 22:59:13