当用户单击按钮时,动画将按钮滑动到屏幕顶部

时间:2014-08-04 15:48:03

标签: java android android-layout android-animation android-button

我有相对布局,有三个按钮,1个固定在顶部(TopButton),一个在底部(BottomButton,一个将直接放在顶部按钮或以上根据用户触摸我的按钮,底部按钮(MiddleButton)。

在每个按钮下面,我放置了一个ScrollView,然后在那里放了一个textView。我正在尝试创建一组监听器,以便当用户单击其中一个按钮时,其他两个按钮ScrollViews(及其textViews)设置为View.GONE,并且按下的按钮将具有其ScrollView设为View.Visible

除了设置ScrollViews可见性之外,我想根据按下的按钮,通过一个简单的滑动动画(全部在屏幕上)将按钮的位置更改为三个菜单中的一个:

  1. 推送TopButton - (打开活动,现在设置的内容)此按钮的scrollView可见,其他两个设置已消失,两个按钮位于底部屏幕。

  2. 推送MiddleButton - ScrollView 1和3将设置为已消失,ScrollView 2将显示,MiddleButton将在TopButton正下方滑动。因此,订单将为TopButtonMiddleButtonScroll/TextView2BottomButton

  3. BottomButton推送 - 1和2的ScrollViews将设置为Gone,3将设置为Visible,BottomButton将向上滑动以显示ScrollView的最大空间。因此,此订单中的顺序为TopButtonMiddleButtonBottomButtonScroll/TextView3

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/OverallLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:animateLayoutChanges="true"
    tools:context="${relativePackage}.${activityClass}" >
    
    <Button
    android:id="@+id/TopButton"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true" />
    
    <Button
    android:id="@+id/BottomButton"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true" />
    
    <Button
    android:id="@+id/MiddleButton"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_above="@id/BottomButton" />
    
    <ScrollView
    android:id="@+id/Scroll1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_above="@id/MiddleButton"
    android:layout_below="@id/TopButton"
    android:visibility="visible" >
    
    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center" />
    </ScrollView>
    
    <ScrollView
    android:id="@+id/Scroll2"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_above="@id/BottomButton"
    android:layout_below="@id/MiddleButton"
    android:visibility="gone" >
    
    <TextView
        android:id="@+id/textView2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center" />
     </ScrollView>
    
    <ScrollView
    android:id="@+id/Scroll3"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@id/BottomButton"
    android:visibility="gone" >
    
    <TextView
        android:id="@+id/textView3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center" />
    </ScrollView>
    
    </RelativeLayout>
    
  4. 我需要帮助确定此移动动画的fromYtoY值。这些是什么?

1 个答案:

答案 0 :(得分:0)

这是我使用的翻译动画。它被称为&#34; pull_in_from_top.xml&#34;

<?xml version="1.0" encoding="utf-8"?>
 <translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromYDelta="-100%"
android:interpolator="@android:anim/accelerate_interpolator"
android:toYDelta="0%" />

这个与#34; push_out_to_top.xml&#34;

相反
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromYDelta="0%"
android:interpolator="@android:anim/accelerate_interpolator"
android:toYDelta="-100%" />