Есть ли метод или значение xml для проверки оставшегося пространства макета? - PullRequest
1 голос
/ 21 марта 2020

remaining space for more items

[Android, макеты, карточки, кнопки]

На показанном изображении оставшееся пространство отличается для каждого размера устройства, разрешения или направление.

  1. Как можно определить это оставшееся пространство программно?
  2. Существует ли значение xml, которое можно добавить к виду (кнопка здесь), чтобы отключить видимость, если оставшееся пространство слишком мало для вида (кнопка здесь), чтобы соответствовать?

(Я знаю, в перспективе material.io у меня не должно быть более двух кнопок внизу карты, в этом случае ширина карты может быть настолько узкой, что кнопка «v MORE» также не подходит. Затем я хочу, чтобы кнопка «v MORE» исчезла, и я могу показать ее как пункт меню во всплывающем меню при нажатии кнопки со значком переполнения справа.

Я также знаю, что уместным предложением является использование строки меню в карточке, мне это не нравится, и это не является хорошей практикой в ​​соответствии со стандартами material.io.)

1 Ответ

0 голосов
/ 21 марта 2020

Вы можете получить ширину устройства, используя Resources.getSystem().getDisplayMetrics().widthPixels;

Если вы можете угадать больше логарифмов исчезновения кнопок c, используя ширину экрана, используйте это и сделайте скрытие и другие изменения, связанные с меню, основываясь на этом.

В дополнение к этому, вы можете создать один и тот же файл макета для разных размеров экрана, которые отображаются с использованием android в соответствии с этим размером экрана. Вы можете увидеть, как сделать это здесь https://developer.android.com/training/multiscreen/screensizes

Если вы хотите получить начальную и конечную координаты этого XML элемента, вы можете использовать приведенный ниже код

Button moreButton = findViewbyId(R.id.thatButton);
int xStart=moreButton.getLeft();  
int yStart =moreButton.getTop(); 
int xEnd=moreButton.getRight();  
int yEnd =moreButton.getBottom();

тогда вы можете рассчитать, что вы хотите ..

...