Проблемы с GridView внутри ScrollView в android

Я пытаюсь положить GridView внутри ScrollView в android. Когда я помещаю GridView не работает.

Вот макет.

       

После многих поисков найден ответ, и он ниже

После поиска я нашел эту ссылку проекта: –

Класс ExpandableHeightGridView

 package xx.xxx.xx.view; import android.content.Context; import android.util.AttributeSet; import android.view.ViewGroup; import android.widget.GridView; public class ExpandableHeightGridView extends GridView { boolean expanded = false; public ExpandableHeightGridView(Context context) { super(context); } public ExpandableHeightGridView(Context context, AttributeSet attrs) { super(context, attrs); } public ExpandableHeightGridView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public boolean isExpanded() { return expanded; } @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // HACK! TAKE THAT ANDROID! if (isExpanded()) { // Calculate entire height by providing a very large height hint. // View.MEASURED_SIZE_MASK represents the largest height possible. int expandSpec = MeasureSpec.makeMeasureSpec(MEASURED_SIZE_MASK, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); ViewGroup.LayoutParams params = getLayoutParams(); params.height = getMeasuredHeight(); } else { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } } public void setExpanded(boolean expanded) { this.expanded = expanded; } } 

Файл layout.xml :

    

Использование classа GridView

 mGridView = (ExpandableHeightGridView) getView().findViewById(R.id.spotsView); mGridView.setExpanded(true); SpotsAdapter adapter = new SpotsAdapter(getActivity(),R.layout.spot_item,params); mGridView.setAdapter(adapter); adapter.notifyDataSetChanged(); 

Это работает для меня

  // Setting on Touch Listener for handling the touch inside ScrollView gridView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { v.getParent().requestDisallowInterceptTouchEvent(true); return false; } }); 
  • Как удалить верхнее и нижнее пространство на текстовом экране Android
  • Android 6: больше не могут делиться файлами?
  • Использование AsyncTask
  • Как фильтровать определенные приложения для намерения ACTION_SEND (и устанавливать другой текст для каждого приложения)
  • Как создать заставку?
  • Как изменить образ ImageView?
  • Как записывать файлы в папку с ресурсами или необработанную папку в Android?
  • Как исправить ошибку «процесс - это плохо» для Android-виджета?
  • Пример: связь между активностью и службой с использованием сообщений
  • Видео YouTube не воспроизводится в WebView
  • частые проблемы, возникающие в представлении android, Анализ ошибок XML: несвязанный префикс
  • Interesting Posts

    Как включить расширение chrome в режиме инкогнито?

    Ошибка обновления Windows 80072EE2

    Выбор значения null: в чем причина «selectAll (null)» в D3.js?

    Запустить одно исполнение плагина Maven?

    Разрешить Java использовать ненадежный сертификат для соединения SSL / HTTPS

    spark.sql.crossJoin.enabled для Spark 2.x

    Округление до следующей мощности 2

    Существуют ли какие-либо тесты, показывающие разницу между включенной / отключенной аппаратной виртуализацией?

    Какой самый быстрый алгоритм для нахождения простых чисел?

    Как выполнить некоторую команду до или после каждой команды Bash, введенной с консоли?

    Сделать ulimits работать с start-stop-daemon

    Открыть изображение из файла, затем отпустить блокировку?

    Невозможно изменить значение членов структуры внутри общих коллекций

    Android Push Notification (GCM), есть ли ежедневный лимит?

    Использование в качестве конкретного типа, соответствующего протоколу AnyObject, не поддерживается

    Давайте будем гением компьютера.