Как отталкиваться от элемента в xml android
Мне нужно оттолкнуться от конкретного элемента как это сделать в xml?
У меня есть EditText и есть кнопка, мне нужно чтобы EditText отталкивался от кнопки на нужное мне количество dp.
Ответы (1 шт):
Для того чтобы оттолкнуться от какого-то элемента, вам нужно знать его координаты. Дальше вы прописываете анимацию:
<?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. Документация.