основная проблема здесь в том, что родительский макет представляет собой вложенный вид прокрутки, поэтому высота должна быть обернута содержимым, чтобы вид был похож на первое изображение
я хочу сделать так, чтобы TextView «не иметь учетной записи? Зарегистрировать» находился внизу экрана, поэтому я вычисляю высоту своего телефона, а затем высоту макета, чтобы вычесть, вычесть их и назначитьрезультат для верхнего поля textview
и вот мой код
ViewTreeObserver observer = binding.parentConstraint.getViewTreeObserver();
if (observer.isAlive()) {
observer.addOnGlobalLayoutListener(() -> {
DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
float parentViewHeightInDP = (int) (binding.parentConstraint.getHeight() / displayMetrics.density);
if (getContext() != null) {
float heightInDP = displayMetrics.heightPixels / displayMetrics.density;
float distanceBetweenLayoutBottomAndParenBottom = heightInDP - parentViewHeightInDP;
if (distanceBetweenLayoutBottomAndParenBottom > 32) {
if (topMargin == 0) {
topMargin = 1;
ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) binding.loginTextDontHaveAccount.getLayoutParams();
layoutParams.topMargin = Math.round(distanceBetweenLayoutBottomAndParenBottom);
Handler handler = new Handler();
handler.postDelayed(() -> {
binding.loginTextDontHaveAccount.requestLayout(); },
50);
}
}
, но результат, который я получил
поэтому мой реальный вопрос здесь заключается в том, почему здесь все еще есть место, я имею в виду, что TextView должен быть точно внизу