Установка LinearLayout и GridView на «wrap_contents» не будет работать, так как GridView по умолчанию имеет значение «fill_parent», если вы не укажете ему определенный размер.Я провел некоторое тестирование, и у вас есть несколько решений в зависимости от того, как вы создаете свое представление:
Установка LinearLayout для Android: layout_width = "100dip"
View view = getLayoutInflater().inflate(R.layout.grid_dialog, null);
dialog.setContentView(view);
=> не работает как ожидалось: инфлятор не имеет родительского представления при накачивании, поэтому он просто не учитывает все атрибуты android: layout_XXX.
dialog.setContentView(R.layout.grid_dialog);
=> работает как и ожидалось, потому что на этот раз диалоговое окно выполнит раздувание и узнает родительское представление.Вы можете использовать dialog.findViewById для получения вида сетки при необходимости ....
Установка GridView на android: layout_width = "100dip"
Видимо работает все время , поскольку у него есть родительский элемент, когда он раздувается, атрибуты layout_XXX на самом деле работают.
Все это не идеально, поскольку оно не выполняет реальное wrap_content в GridView, и вам необходимо вручную установить layout_width,но это должно работать.