У меня есть ListView
который содержит ArrayAdapter
который содержит предметы для каждого часа дня, и мне нужно, чтобы поместить элемент, который содержит текущий час в центре видимого области ListView.Place ListView элемент в центре видимой области
Я пробовал setSelection
, но он поместит элемент сверху, а не в центр.
Есть ли способ сделать это без расчета высоты макета и т. Д.?
Прямо сейчас я использую этот метод, потому что знаю, что предметы высотой 40dip, но они не всегда будут 40dip высотой.
private void centerListView() {
final Calendar c = Calendar.getInstance();
final int hour = c.get(Calendar.HOUR_OF_DAY);
final int listViewProgrammerPixels = listViewProgrammer.getHeight();
final int itemPixels = (int) (40 * getResources().getDisplayMetrics().density + 0.5f);
final int pixelsFromTop = (listViewProgrammerPixels - itemPixels)/2;
listViewProgrammer.setSelectionFromTop(hour, pixelsFromTop);
}
Показать код элемента списка .show your code –
Существует много способов сделать это. Необходимо увидеть код – FaddishWorm
Вы можете скопировать содержимое этого элемента в другой 'View', а затем установить его свойство' gravity' 'center'. – NitroNbg