Как отталкиваться от элемента в xml android

Мне нужно оттолкнуться от конкретного элемента как это сделать в xml?

У меня есть EditText и есть кнопка, мне нужно чтобы EditText отталкивался от кнопки на нужное мне количество dp.


Ответы (1 шт):

Автор решения: Andrew

Для того чтобы оттолкнуться от какого-то элемента, вам нужно знать его координаты. Дальше вы прописываете анимацию:

<?xml version="1.0" encoding="utf-8">
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:fillAfter="true" android:interpolator="@android:anim/bounce_interpolator">
<scale
    android:fromXScale="1.0"
    android:fromYScale="0.0"
    android:toXScale="1.0"
    android:toYScale="1.0"
    android:duration="600" />
</set>

и в активности например в onCreate() вызываете данную анимацию:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val bounceAnimation = AnimationUtils.loadAnimation(this, R.anim.bounce_animation)

    val textViewToBounce = findViewById<TextView>(R.id.textViewToBounce)
    textViewToBounce.setOnClickListener {
        textViewToBounce.startAnimation(bounceAnimation)
    }
}

Вот статья по данному вопросу. Для того чтобы получить координаты элемента от которого вы хотите отталкиваться, можно использовать данный способ:

int[] location = new int[2];
myView.getLocationOnScreen(location);
int x = location[0];
int y = location[1];

Так же вот вопрос подобный вашему.

UPDATE

Если под оттолкнуться вы подразумеваете отступ между полем для ввода и кнопкой, то не помешал бы ваш xml)) Есть два вида отступов: внутренние и наружные. введите сюда описание изображения Внутренние отступы влияют на содержимое контейнера view и могут двигать это содержимое внутри этого контейнера. Наружные отступы влияют на расположение view в родительском. Наружные отступы это margin а внутренние padding. То что вы спрашиваете это вероятнее всего margin. Так как сторон у прямоугольного/квадратного элемента 4, то и margin есть 4 варианта:

android:layout_marginLeft="dp"
android:layout_marginRight="dp"
android:layout_marginTop="dp" 
android:layout_marginBottom="dp"

в кавычках указывается на сколько dp элемент должен отодвинуться от чего-либо. Например отступ сверху на 10dp можно установить так:

android:layout_marginTop="10dp"

Вот есть интересные уроки и статьи по вопросу установки отступов: 1, 2, 3. Документация.

→ Ссылка