Мне нужно знать нижнюю часть Y TextView при изменении его размера (либо при изменении текста, либо при изменении ширины при повороте экрана), чтобы задать отступ представления Google Maps.Ниже приведен НЕ реальный код, а упрощенный пример кода просто для демонстрации проблемы.
TextView находится внутри другого макета, поэтому его вершина возвращает 0. Но, конечно, вершина TextView в верхнем макете не равна 0Я пробовал приведенный ниже код, но получил нули.
loc [0] = 0, loc 1 = 0
top = 0, высота= 86
Кроме того, я не уверен, правильно ли getLocationInWindow
.Я имею в виду, если то, что я считаю правильным, это может включать AppBar?Но то, что AppBar находится вне верхнего макета (например, RelativeLayout
в моем main_activity.xml), поэтому я думаю, что я должен получить местоположение в верхнем макете, а не в окне.Как правильно получить местоположение в верхнем макете?
class MainActivity : AppCompatActivity(),
{
override fun onCreate(savedInstanceState: Bundle?)
{
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var loc = IntArray(2);
tvAny.getLocationInWindow(loc);
tvAny.addOnLayoutChangeListener { v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom ->
val height = bottom - top;
Log.d("so", "loc[0] = " + loc[0] +", loc[1] = " + loc[1])
Log.d("so", "top = " + top +", height = " +height)
}
}
}
И Activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<FrameLayout
android:layout_margin="50dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tvAny"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#55FF0000"
android:text="I don't want any damn vegetables."/>
</FrameLayout>
</RelativeLayout>
И скриншот: ![enter image description here](https://i.stack.imgur.com/JYU0D.png)