В основном у меня есть TextView, который нужно переместить с правой стороны на другую (я тестирую что-то для другого проекта). Вместо этого все по-прежнему. Ничего не выполняется.
Еще один момент, на который следует обратить внимание: если я удаляю оператор if, что необходимо в моем случае, все работает просто отлично. Я думал, что условие ложно, поэтому я добавил другое утверждение. То же самое произошло - ничего. Я проверил, является ли условие ложным - это было правдой. Таким образом, код внутри оператора if должен был быть выполнен.
Мне все кажется логичным, но я могу ошибаться. Не могли бы вы помочь мне? Что я могу изменить? У тебя другой подход к моей проблеме? Спасибо!
PS: проблема не в анимации TextView. Проблема заключается в задержке.
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"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:background="#000000"
android:text="0"
android:textColor="#000000" />
</RelativeLayout>
Java:
package com.nicksoft.test;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.TableLayout;
import android.widget.TextView;
import android.widget.Toast;
import java.util.concurrent.TimeUnit;
public class MainActivity extends AppCompatActivity {
int ind = -1;
private Handler h = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
r.run();
}
private Runnable r = new Runnable() {
@Override
public void run() {
if(findViewById(R.id.textView).getX()>0) {
findViewById(R.id.textView).setTranslationX(ind);
ind--;
h.postDelayed(r,5);
}
}
};
}