Управление макетом планшета / телефона на 3.2+ - PullRequest
2 голосов
/ 22 августа 2011

3.2 представлен отличный новый способ создания макетов ... с помощью layout-swXXXdp в папке res.Проблема заключается в том, что он контролирует, какой макет используется SmallestWidth в dp.Это замечательно, но если у вас планшет 1024х600 и 1024х768, проблема есть.Мое приложение только в альбомной ориентации.Это сетка с определенным количеством элементов в строке.Проблема заключается в том, что мне нужно, чтобы сетка вида регулировала количество элементов в строке в зависимости от разрешения по высоте.На всех экранах с разрешением 1024 пикселя в строке вида сетки должно быть 5 элементов, тогда как на всех планшетах с разрешением 1280 пикселей в строке вида сетки должно быть 6 элементов.Это не должно быть основано на ширине, потому что тогда gridview становится немного сжатым.Как я могу это сделать?(мой выбор макета основан на высоте, а не ширине)

1 Ответ

0 голосов
/ 11 февраля 2012

Пожалуйста, попробуйте это

Получить высоту и ширину дисплея

Display display = ((WindowManager)getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();

Проверьте высоту после объявления GridView и соответственно установите Количество столбцов

Например

GridView gridView = (GridView)findViewById(R.id.app_gridview);
if(height <= 1024){
   gridView.setNumColumns(5);
}else {
   gridView.setNumColumns(6);
}

Я думаю, что это решит проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...