>

나는 단순히 내 문제에 대한 해결책을 찾을 수 없습니다. 누구든지 도울 수 있기를 바랍니다. 안드로이드의 경우보기를 아래로 슬라이드하려고하고 3 초 후에 자동으로 위로 올라와야합니다.

메소드를 처음 시작할 때 잘됩니다! 보기가 아래로 슬라이드되고 잠시 후 자동으로 다시 슬라이드됩니다.

두 번째로 메소드를 시작할 때 아무 일도 일어나지 않습니다. 보기가 표시되지 않습니다! 보기조차 아래로 미끄러지지 않습니다. (textView는 TextInputEditText입니다)

   public void slideDown() {
        textView.animate().translationY(100).setStartDelay(350);
        textView.animate().translationY(0).setStartDelay(3000);
    }
    public void initAnimation() {
        ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        textView.setLayoutParams(layoutParams);
        textView.setGravity(Gravity.CENTER);
        textView.setPadding(1000, 10, 1000, 10);
        textView.animate().translationY(100);
    }

이 포럼에서 오리엔테이션을 시도했습니다 슬라이드 다운 및 슬라이드 업


  • 답변 # 1

    안녕하세요 @ 피터는 당신을 도울 것입니다

       import android.os.Bundle;
    import android.os.Handler;
    import android.support.annotation.Nullable;
    import android.support.v7.app.AppCompatActivity;
    import android.view.animation.TranslateAnimation;
    import android.widget.TextView;
    public class AnimationActivity extends AppCompatActivity {
    
        TextView tvTitle;
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_animation);
            tvTitle = findViewById(R.id.tvTitle);
            slideUp();
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    slideDown();
                }
            }, 3000);
        }
        public void slideDown() {
            TranslateAnimation animate = new TranslateAnimation(
                    0,                 // fromXDelta
                    0,                 // toXDelta
                    0,                 // fromYDelta
                    500); // toYDelta
            animate.setDuration(500);
            animate.setFillAfter(true);
            tvTitle.startAnimation(animate);
        }
        public void slideUp() {
            TranslateAnimation animate = new TranslateAnimation(
                    0,                 // fromXDelta
                    0,                 // toXDelta
                    500,  // fromYDelta
                    0);                // toYDelta
            animate.setDuration(1000);
            animate.setFillAfter(true);
            tvTitle.startAnimation(animate);
        }
    }
    
    

  • 답변 # 2

    Thx 나는 이렇게했다 :

    public void slideDown() {
        textView.animate().translationY(100).setDuration(500);
        textView.postDelayed(new Runnable() {
            @Override
            public void run() {
                //Do something after 3000ms
                textView.animate().translationY(0).setDuration(300);
            }
        },3000);
    }
    
    

관련 자료

  • 이전 matlab - 필드 값을 기준으로 필드를 추출하는 방법
  • 다음 sql server - t-sql - 문자열에서 구분 기호 사이의 sum 수