Добавить GridView в ListView в Android

16

Я пытаюсь создать ListView, который будет состоять из двух типов элементов: Строки и GridView.
То есть поместив обе строки и GridView в один список ListView.

Макет должен выглядеть примерно так:

  • Строка Пункт 1.1
  • Строка Пункт 1.2
  • Строка Элемент 1.3
  • Строка Пункт 1.4
  • GridView Item 1 GridView Item 2
    GridView Item 3 GridView Пункт 4
  • Строка Пункт 2.1
  • Строка Пункт 2.2
  • Строка Пункт 2.3
  • Строка Пункт 2.4

Есть ли способ сделать это?

В настоящее время я могу показать только первый элемент в GridView, и он действует как обычный элемент String в ListView.

Код можно посмотреть здесь:

Любая помощь приветствуется:)

    
задан greve 05.10.2010 в 11:13
источник

1 ответ

50

Чтобы ответить на мой собственный вопрос:

На основе этого ответа Я создал этот класс, который работает очень хорошо:

public class NonScrollableGridView extends GridView {
    public NonScrollableGridView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        // Do not use the highest two bits of Integer.MAX_VALUE because they are
        // reserved for the MeasureSpec mode
        int heightSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, heightSpec);
        getLayoutParams().height = getMeasuredHeight();
    }
}
    
ответ дан greve 17.10.2012 в 11:58
  • Я обязан вам шестью пакетами, это отлично работает! :) –  Mark Feldman 15.11.2013 в 00:26
  • +1 Спасибо, человек! Ты спас мой день! Еще раз спасибо, приятель. –  Sajmon 04.06.2014 в 20:03
  • большое спасибо ... Вы настоящий MVP –  DiegoAlt 30.08.2014 в 19:01
  • Проблема с этой задачей, если в сетке есть много данных, все расписано одновременно, на этой сетке нет проблем с переработкой и может выйти из памяти ... должен быть способ ... может быть, с переработкой? –  jfcogato 18.03.2015 в 16:36
  • Это очень старый вопрос / ответ. Его можно легко решить, например, RecyclerView сейчас. Взгляните сюда, например: blog.sqisland.com/2014/12/recyclerview-grid-with-header.html –  greve 17.04.2015 в 19:15
Показать остальные комментарии