Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android设置文本位置永久不起作用_Android_Textview - Fatal编程技术网

Android设置文本位置永久不起作用

Android设置文本位置永久不起作用,android,textview,Android,Textview,你好,Stack社区 我想更改文本视图的位置 我尝试了几种方法,但对于所有这些方法,视图位置都会设置回原始位置 我试过的方法 // 1. way someText.setX(newPositionX); someText.setY(newPositionY); // 2.way someText.x(newPositionX).y(newPositionY).setDuration(0).start(); // 3.way someTex

你好,Stack社区

我想更改文本视图的位置

我尝试了几种方法,但对于所有这些方法,视图位置都会设置回原始位置

我试过的方法

    // 1. way
    someText.setX(newPositionX);
    someText.setY(newPositionY);

    // 2.way
    someText.x(newPositionX).y(newPositionY).setDuration(0).start();

    // 3.way
   someText.animate().x(newPositionX).y(newPositionY).setDuration(0).start();

    //4.way
    ObjectAnimator objectAnimatorX= ObjectAnimator.ofFloat(someText, "translationX", oldPositionX, newPositionX);
    ObjectAnimator objectAnimatorY= ObjectAnimator.ofFloat(someText, "translationY", oldPositionY, newPositionY);
    objectAnimatorX.setDuration(0);
    objectAnimatorX.start();
    objectAnimatorY.setDuration(0);
    objectAnimatorY.start();

    // 5.way
    ObjectAnimator animX = ObjectAnimator.ofFloat(someText, "x", newPositionX);
    ObjectAnimator animY = ObjectAnimator.ofFloat(someText, "y", newPositionY);
    AnimatorSet animSetXY = new AnimatorSet();
    animSetXY.playTogether(animX, animY);
    animSetXY.start();
对于所有这些方式,它都会重置为原始位置

但是,当我在onTouch事件中使用animate函数时,例如
someText.animate().x(newPositionX).y(newPositionY).setDuration(0).start()

它不会设置为原始坐标,更改是永久性的。这就是我想要的,但我想这样做,没有触摸事件,也就是代码中使用其他事件的其他部分

我的问题是

  • 为什么当我使用onTouch事件时更改是永久的,而当我不使用onTouch事件时更改是临时的
  • 如何实现永久设置文本位置 最后,对于textView,我的xml是这样的

        `<TextView
        android:id="@+id/latinBigTextView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="20dp"
    
        android:background="@drawable/border_text"
        android:text="Initial text " />`
    
    ``
    
    不知怎的,我已经修好了。我还没有得到最好的结果,但它会永久更新。最可能是因为我的计算,但目前看来,职位更新仍然存在。我使用了以下代码:

        TranslateAnimation anim = new TranslateAnimation(0, deltaX, 0, deltaY);
        anim.setDuration(0);
        anim.setFillAfter(true);
        anim.setFillEnabled(true);
        anim.setAnimationListener(new Animation.AnimationListener()
        {
            @Override
            public void onAnimationStart(Animation animation)
            {
            }
            @Override
            public void onAnimationEnd(Animation animation)
            {
                int l = newPosX;
                int t = newPosY;
                int r = SomeText.getWidth() + newPosX;
                int b = SomeText.getHeight() + newPosY;
                latinText.layout(l, t, r, b);
            }
            @Override
            public void onAnimationRepeat(Animation animation)
            {
            }
        });
        latinText.startAnimation(anim);
    
    其中SomeText是我要永久动态移动的textView。DeltaX和DeltaY是我想要移动的像素量。 (l、r、t、b)表示视图的(左、上、右、下)

    我希望它能帮助其他面临同样问题的人

    然而,对于我的第一个问题,我仍然没有答案。如果有人知道并告诉我,我将不胜感激