(android)视图将向下滑动并在几秒钟后自动向上滑动

问题描述 投票:0回答:2

我根本无法找到解决问题的方法。我希望任何人都可以提供帮助。对于android我试图向下滑动视图,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);
    }

我试图定位这个论坛条目Slide Down & Slide Up

android slide
2个回答
0
投票

你好@Peter尝试这个它会帮助你

    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);
    }
}

0
投票

我是这样做的:

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);
}
© www.soinside.com 2019 - 2024. All rights reserved.