翻译动画后增加recyclerview的高度(使用ObjectAnimator)

时间:2017-06-27 13:37:13

标签: android android-recyclerview android-animation objectanimator

我所做的是点击按钮我隐藏了条形码扫描器,即使用ObjectAnimator进行“Y”翻译。同时,条形码扫描仪下方的recyclerview也将使用ObjectAnimator以“Y”方向平移。动画是唯一的问题,当recylcerview被翻译为“Y”时,它下方有一些空格,我无法填充整个空间。检查下面我使用过的代码。

    //scannerLayout is barcode scanner and recycler view is list
    int height1 = scannerLayout.getHeight(); 
    ObjectAnimator objectAnimator = ofFloat(scannerLayout, "translationY", 0, -1 * (height1));

    objectAnimator.setDuration(1000);
    objectAnimator.start();

    ObjectAnimator objectAnimator1 = ofFloat(recyclerView, "y", barcodeInputBoxHeight); //barcodeInputBoxHeight - is height of edittext which is shown between toolbar and recyalerview 
    objectAnimator1.setDuration(1000);
    objectAnimator1.start();
    objectAnimator1.addListener(new Animator.AnimatorListener() {
        @Override
        public void onAnimationStart(Animator animator) {
        }

        @Override
        public void onAnimationEnd(Animator animator) {
            // here I am doing some other stuff
        }

        @Override
        public void onAnimationCancel(Animator animator) {

        }

        @Override
        public void onAnimationRepeat(Animator animator) {

        }
    });

我尝试在onAnimationEnd上为recyclerview设置新的布局参数,但它没有用。

检查以下视频是否存在确切问题 Video

下面是布局xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            xmlns:tools="http://schemas.android.com/tools"
            android:id="@+id/content_pos"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"
            tools:context=".modules.pos.POSActivity">

<FrameLayout
    android:id="@+id/screenFrame"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:elevation="6dp">

    <com.journeyapps.barcodescanner.DecoratedBarcodeView
        android:id="@+id/barcode_scanner"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </com.journeyapps.barcodescanner.DecoratedBarcodeView>

    <ImageButton
        android:id="@+id/imageButtonFlash"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right|bottom"
        android:layout_margin="15dp"
        android:background="@drawable/button_border"
        app:srcCompat="@drawable/ic_action_flash"/>

    <ImageButton
        android:id="@+id/imageButtonInput"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_margin="5dp"
        android:layout_marginTop="25dp"
        android:background="@drawable/button_border"
        android:visibility="gone"
        app:srcCompat="@drawable/ic_action_input_barcode"/>

</FrameLayout>

<FrameLayout
    android:id="@+id/rlInputBox"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:background="@color/colorPrimary"
    android:elevation="8dp"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:padding="10dp"
    android:visibility="visible">

    <EditText
        android:id="@+id/editTextSearch"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginEnd="50dp"
        android:layout_marginRight="50dp"
        android:background="@drawable/round_corner"
        android:ems="10"
        android:hint="Search"
        android:imeOptions="actionSearch"
        android:inputType="number"
        android:paddingBottom="5dp"
        android:paddingEnd="30dp"
        android:paddingLeft="10dp"
        android:paddingRight="20dp"
        android:paddingStart="10dp"
        android:paddingTop="5dp"/>

    <ImageView
        android:id="@+id/imageViewCloseInputBox"
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:layout_gravity="end|center_vertical"
        android:layout_marginEnd="60dp"
        android:layout_marginRight="60dp"
        android:src="@drawable/ic_action_close_input_box"/>

    <ImageView
        android:id="@+id/imageViewSwitchKeyboard"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_gravity="end|center_vertical"
        android:layout_marginEnd="5dp"
        android:layout_marginRight="5dp"
        android:src="@drawable/ic_action_keyboard"/>

</FrameLayout>

<android.support.v7.widget.RecyclerView
    android:id="@+id/recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/buttonCheckOut"
    android:layout_below="@+id/screenFrame"
    android:layout_centerHorizontal="true"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="5dp"/>

<Button
    android:id="@+id/buttonCheckOut"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:background="@color/colorPrimary"
    android:elevation="6dp"
    android:text="Checkout"
    android:textColor="#ffffff"/>

0 个答案:

没有答案