在动画中从GONE设置VISIBLE后未显示TextView

时间:2016-07-21 04:49:54

标签: android animation layout visible

尝试使用“下滚”动画将LinarLayout从GONE状态显示为VISIBLE。在这个布局上存在TextView。似乎所有工作都很好但是,动画后没有显示TextView。 我做错了什么?

       <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:visibility="gone"
            android:id="@+id/ll_info">
            <TextView
                android:id="@+id/bayer_note"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:layout_marginTop="10dp"
                android:layout_marginBottom="10dp"
                android:text="@string/buyer_note"/>
            <RelativeLayout
                android:id="@+id/button_continue"
                android:layout_width="match_parent"
                android:layout_height="54dp"
                android:layout_centerHorizontal="true"
                android:layout_marginLeft="@dimen/activity_horizontal_margin"
                android:layout_marginRight="@dimen/activity_horizontal_margin"
                android:background="@drawable/button_register"
                android:drawableEnd="@drawable/ic_arrow_forward_white_24dp">

                <TextView
                    android:id="@+id/btn_cont_caption"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:text="Войти"
                    android:textColor="@android:color/white"
                    android:textSize="20sp"
                    android:fontFamily="fonts/SF-UI-Display-Regular.ttf"
                    android:layout_centerInParent="true" />

                <ImageView
                    android:layout_width="25dp"
                    android:layout_height="25dp"
                    android:id="@+id/imageView"
                    android:layout_centerVertical="true"
                    android:layout_alignParentEnd="false"
                    android:src="@drawable/ic_door"
                    android:layout_toRightOf="@+id/btn_cont_caption"
                    android:layout_marginLeft="10dp"
                    android:scaleType="fitCenter" />
            </RelativeLayout>
        </LinearLayout>

动画代码:

final LinearLayout ll_info = (LinearLayout)findViewById(R.id.ll_info);

        class scaleAnimation extends Animation {
                    public LinearLayout ll;
                    public int newHeight;

                    public void scaleTopHeight(int height)
                    {
                        newHeight = height;
                    }

                    public void setLayout(LinearLayout layout) {
                        ll = layout;
                    }
                }

                final LinearLayout ll_info = (LinearLayout)findViewById(R.id.ll_info);

                scaleAnimation h = new scaleAnimation() {
                    @Override
                    protected void applyTransformation(float interpolatedTime, Transformation t) {
                        ll.getLayoutParams().height = interpolatedTime == 1
                                ? LinearLayout.LayoutParams.WRAP_CONTENT
                                : (int)(newHeight * interpolatedTime);
                        ll.requestLayout();
                    }
                };
                h.setDuration(300);
                h.setLayout(ll_info);
        ll_info.setVisibility(View.VISIBLE);
                ll_info.measure(View.MeasureSpec.makeMeasureSpec(((LinearLayout)ll_info.getParent()).getWidth(), View.MeasureSpec.AT_MOST), View.MeasureSpec.makeMeasureSpec(((LinearLayout)ll_info.getParent()).getHeight(), View.MeasureSpec.AT_MOST));
                h.scaleTopHeight(ll_info.getMeasuredHeight());
        ll_info.getLayoutParams().height=1;
                ll_info.startAnimation(h);

1 个答案:

答案 0 :(得分:0)

<RelativeLayout
            android:id="@+id/button_continue"
            android:layout_width="match_parent"
            android:layout_height="54dp"

            **android:layout_centerHorizontal="true"** /////  
  

删除此

            android:layout_marginLeft="@dimen/activity_horizontal_margin"
            android:layout_marginRight="@dimen/activity_horizontal_margin"
            android:background="@drawable/button_register"
            android:drawableEnd="@drawable/ic_arrow_forward_white_24dp">

            <TextView
                android:id="@+id/btn_cont_caption"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:text="Войти"
                android:textColor="@android:color/white"
                android:textSize="20sp"
                android:fontFamily="fonts/SF-UI-Display-Regular.ttf"
                android:layout_centerInParent="true" />

            <ImageView
                android:layout_width="25dp"
                android:layout_height="25dp"
                android:id="@+id/imageView"
                android:layout_centerVertical="true"
                android:layout_alignParentEnd="false"
                android:src="@drawable/ic_door"
                android:layout_toRightOf="@+id/btn_cont_caption"
                android:layout_marginLeft="10dp"
                android:scaleType="fitCenter" />
        </RelativeLayout>

我认为这是你的xml文件问题,你在center_horizo​​ntal的relativelayout和所有的孩子都在parent.so textview中隐藏在imageview上。试一试,让我知道。