Я поместил listView в popupWindow, когда у него много элементов, popupWindow превышает размер экрана, поэтому я хочу ограничить максимальную высоту (или max item, show scroll бар, если превышает) в ListView, спасибо всемКак установить максимальную высоту спискаView в android
1
A
ответ
0
Попробуйте это может быть полезным для вас
public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
// pre-condition
return;
}
int totalHeight = listView.getPaddingTop() + listView.getPaddingBottom();
for (int i = 0; i < 5; i++) //here you can set 5 row at a time if row excceded the scroll automatically available
{
View listItem = listAdapter.getView(i, null, listView);
if (listItem instanceof ViewGroup) {
listItem.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
}
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
}
и вы можете использовать как этот
YourAdapter mYoursAdapter = new YourAdapter();
mListview.setAdapter(mYoursAdapter);
setListViewHeightBasedOnChildren(mListview);
0
Создать класс AppUtil в проекте. Попробуйте вот так:
public class AppUtil{
public static void setListViewHeightBasedOnChildren(ListView listView) {
if (listView == null) {
return;
}
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
// pre-condition
return;
}
int totalHeight = listView.getPaddingTop() + listView.getPaddingBottom();
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
if (listItem instanceof ViewGroup) {
listItem.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
}
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
}
}
Для вызова выше метод в вашей деятельности или фрагмента вы можете продолжить так:
public class MedicalReportsFragment extends Fragment {
@Bind(R.id.lv_investigative_report)
ListView investigativeReportLV;
private MedicalReportsAdapter mMedicalReportsAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mMedicalReportsAdapter = new MedicalReportsAdapter(getActivity(), mMedicalReportOverviews,true);
investigativeReportLV.setAdapter(mMedicalReportsAdapter);
AppUtil.setListViewHeightBasedOnChildren(investigativeReportLV);
}
}
Смежные вопросы
- 1. Как установить максимальную высоту RecyclerView?
- 2. Как установить максимальную высоту в ListView?
- 3. Установить максимальную высоту для списка
- 4. Как установить максимальную высоту изображения в Docbook?
- 5. Как установить максимальную высоту с содержимым обертки в android?
- 6. Установить максимальную высоту фиксированного элемента
- 7. Как установить минимальную высоту и максимальную высоту в slimScroll?
- 8. Как установить максимальную высоту таблиц CSS?
- 9. Как установить максимальную ширину и максимальную высоту изображения перед загрузкой
- 10. Как установить максимальную высоту изображений CSS?
- 11. Как установить минимальную высоту и максимальную высоту, равную окну. Высота
- 12. Установить максимальную высоту с помощью javascript
- 13. Задать максимальную высоту блока
- 14. Установить максимальную высоту столбца в GridLayout, чтобы избежать дублирования
- 15. Как установить максимальную высоту изображения в отчете о кристалле?
- 16. Как установить максимальную высоту пика в peakutils [python]
- 17. Как установить максимальную высоту для высоты auto в CSS?
- 18. Как установить максимальную высоту горизонтальной полосы в MPAndroidChart?
- 19. Как установить максимальную высоту для активности (диалоговое окно)
- 20. ngDialog - получить максимальную высоту
- 21. Измените максимальную ширину или максимальную высоту формы в .net
- 22. Я хочу установить максимальную высоту в фрагменте диалога
- 23. Рассчитать максимальную высоту массива
- 24. Установите максимальную высоту UITableView
- 25. Как установить максимальную высоту расширенного элемента «Избранный» (плагин jQuery)
- 26. CSS3: Как установить средний DIV на максимальную высоту?
- 27. Как установить максимальную высоту указателя маркера карты Google?
- 28. Как установить максимальную высоту для меток Xamarin Forms?
- 29. Как получить максимальную ширину и высоту устройства в android
- 30. Как установить максимальную ширину и высоту для pixmaps?
Отъезд этот ответ: http://stackoverflow.com/a/22002054/3363481 – earthw0rmjim
Спасибо, ваше решение эффективно – Zijian