为什么不绘制屏幕的ImageView

时间:2016-07-28 08:51:41

标签: android animation imageview off-screen

我需要在包含RecyclerViewImageView的布局上创建一个反弹动画。为简化说明,这里是我当前布局的说明:

enter image description here

RecyclerView红色)占据所有屏幕尺寸,在其下面我定位了ImageView绿色)一开始。这两个视图包含在具有垂直方向的LinearLayout蓝色)中。

我想要做的是将LinearLayout 50dp向上移动,然后使用反弹动画将其放回,这样图像视图才会在此动画中显示。

问题在于,当我使用此代码提升LinearLayout时:

mLayout.postDelayed(new Runnable() {
        @Override
        public void run() {
            mLayout.animate().y(-500f);
        }
    }, 1000);

当我使用DDMS并在移动动画之后获取XML布局的快照时,看起来图像甚至不是布局的一部分时,不再显示ImageView。

更新: 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:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/white"
            android:orientation="vertical"

            android:animateLayoutChanges="true"
            android:theme="@style/AppTheme.MyTopics.Theme"
            tools:mContext=".ui.fragments.MyTopicsFragment">

<include
    android:id="@+id/toolbar_container"
    layout="@layout/toolbar_timeline_container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

    <LinearLayout
    android:id="@+id/layout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_below="@id/toolbar_container">

    <android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/swipe_refresh"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <com.lsjwzh.widget.recyclerviewpager.RecyclerViewPager
            android:id="@+id/vertical_recycler_view"
            style="@style/NoOverScrollStyle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/white"
            app:rvp_singlePageFling="true"/>

    </android.support.v4.widget.SwipeRefreshLayout>

    <ImageView
        android:id="@+id/first_time_image"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scaleType="centerCrop"
        android:layout_below="@+id/swipe_refresh"
        android:background="@android:color/holo_green_dark"
        android:src="@drawable/drawable_image_tutorial_background"/>

</LinearLayout>


<com.shellanoo.newsbot.ui.views.GeneralErrorView
    android:id="@+id/no_data_errors_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:gev_no_data_view_layout="@layout/view_no_data_timeline"/>

<com.shellanoo.newsbot.ui.views.ProgressWheel
    android:id="@+id/loading_pb"
    style="@style/AppTheme.ProgressBar.Large"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:visibility="gone"/>

<ImageView
    android:id="@+id/my_topics_btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_gravity="bottom|left"
    android:paddingBottom="20dp"
    android:paddingLeft="24dp"
    android:paddingRight="30dp"
    android:paddingTop="20dp"
    android:visibility="gone"
    app:srcCompat="@drawable/profile_main"
    tools:visibility="visible"/>

<ImageView
    android:id="@+id/add_topics_btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_gravity="bottom|right"
    android:paddingBottom="20dp"
    android:paddingLeft="30dp"
    android:paddingRight="24dp"
    android:paddingTop="20dp"
    android:visibility="gone"
    app:srcCompat="@drawable/plus_main"
    tools:visibility="visible"/>

<com.shellanoo.newsbot.ui.views.NewStoriesIndicatorView
    android:id="@+id/new_items_tip"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:padding="8dp"
    app:layout_collapseMode="parallax"
    app:layout_collapseParallaxMultiplier="0.7"
    tools:text="5 new items"/>

</RelativeLayout>

有人知道原因,以及如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

试试这个

 <RelativeLayout
         android:id="@+id/layout"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content">
  <android.support.v4.widget.SwipeRefreshLayout
    android:id="@+id/swipe_refresh"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="200dp">


    <com.lsjwzh.widget.recyclerviewpager.RecyclerViewPager
        android:id="@+id/vertical_recycler_view"
        style="@style/NoOverScrollStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white"
        app:rvp_singlePageFling="true"
        android:minHeight="200dp"/>   


    </android.support.v4.widget.SwipeRefreshLayout>

     <ImageView
         android:id="@+id/first_time_image"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:scaleType="centerCrop"
         android:layout_below="@+id/swipe_refresh"
         android:background="@android:color/holo_green_dark"
         android:src="@drawable/drawable_image_tutorial_background"/>
  </RelativeLayout>