使用动画调整AbsListView的大小

时间:2014-10-21 12:55:22

标签: android listview animation

将listview扩展为父级高度时遇到问题。我的场景以listview和工具栏开始。

scene http://oi60.tinypic.com/1oqhht.jpg

当刷新listview时,我将工具栏和列表视图移动到顶部。我希望listview在此刻填满整个场景,但我得到以下结果:

scene http://oi58.tinypic.com/2lihu06.jpg

场景布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"       
    xmlns:tools="http://schemas.android.com/tools"      
    xmlns:app="http://schemas.android.com/apk/res-auto"     
    android:layout_width="match_parent"    
    android:layout_height="match_parent"      
    tools:context=".MainActivity">        

    <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"       
        android:id="@+id/my_toolbar"          
        android:layout_width="match_parent"                         
        android:layout_height="wrap_content"        
        android:background="@color/colorPrimary" />          

    <ListView
        android:id="@+id/cardContainer"
        android:layout_width="fill_parent"             
        android:layout_height="fill_parent"
        android:layout_below="@id/my_toolbar"/>


    <com.melnykov.fab.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_marginRight="16dp"                   
        android:layout_marginBottom="20dp"
        app:fab_shadow="false"
        app:fab_type="normal"                   
        android:src="@drawable/add" />                                 

</RelativeLayout>                    

移动方法:

private void hideToolbar() {
        toolbarView.animate().translationY(-toolbarView.getBottom()).alpha(0).setDuration(320).setInterpolator(new DecelerateInterpolator());
        cardContainer.animate().translationY(-toolbarView.getBottom()).setDuration(320).setInterpolator(new DecelerateInterpolator());
        shown = false;
}

private void showToolbar() {
    toolbarView.animate().translationY(0).alpha(1).setDuration(400).setInterpolator(new DecelerateInterpolator());
    cardContainer.animate().translationY(0).setDuration(400).setInterpolator(new DecelerateInterpolator());
    shown = true;
}

1 个答案:

答案 0 :(得分:0)

您应该尝试在 RelativeLayout

上设置android:fitsSystemWindows="true"