Элемент GridView не расширяется, чтобы показывать контент

58
6

Это может быть противоположный вопрос от элементов Android GridView Resizing

У меня есть GridView, который настроен на отображение пользовательского макета, сделанного из LinearLayout с фоном с 9 патчами и TextView. LinearLayout имеет набор дополнений 10dp, поэтому TextView остается в центральном патче.

Когда я тестировал данные для расширения TextView, LinearLayout также появляется для расширения (yay!), Но GridView отключает нижнюю часть. На изображении ниже вы можете видеть, что нижний правый элемент имеет нижнюю правую кривизну.

Screenshot of GridView

MyClasses.java:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_classes);
notebookGrid = (GridView)findViewById(R.id.NotebookGrid);

ArrayList<String> class1 = new ArrayList<>(Arrays.asList("1", "Ms. Soldan Class"));
ArrayList<String> class2 = new ArrayList<>(Arrays.asList("2", "Ms. Perry Class"));
ArrayList<String> class3 = new ArrayList<>(Arrays.asList("3", "Ms. Panjwani Class"));
ArrayList<String> class4 = new ArrayList<>(Arrays.asList("4", "Ms. Smith Really Awesome Super Cool Class of Many Geniuses"));

ArrayList<ArrayList<String>> classArray = new ArrayList<>();
classArray.add(class1);
classArray.add(class2);
classArray.add(class3);
classArray.add(class4);
notebookGrid.setAdapter(new MyClassesAdapter(this, classArray));
}

MyClassesAdapter.java:

public View getView(int position, View convertView, ViewGroup parent) {
ArrayList<String> thisClass = getItem(position);
ViewHolder vh;
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.grid_class_notebook, parent,false);
vh = new ViewHolder(convertView,R.id.NotebookTitle);
convertView.setTag(vh);
} else {
vh = (ViewHolder)convertView.getTag();
}
vh.TitleView.setText(thisClass.get(1));
return convertView;
}

grid_class_notebook.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:background="@drawable/notebook">

<Space
android:layout_width="wrap_content"
android:layout_height="10dp"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:background="@color/White"
android:padding="10dp"
android:textStyle="bold"
android:textSize="12sp"
android:id="@+id/NotebookTitle"
/>
</LinearLayout>

activity_my_classes:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="10dp">

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="22sp"
android:gravity="left"
android:padding="25dp"
android:text="@string/classes_title"
android:textStyle="bold"/>

<GridView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:numColumns="2"
android:padding="15dp"
android:id="@+id/NotebookGrid"/>
</LinearLayout>

Как получить элемент или строку для роста выше в ответ на более крупный ребенок TextView?

спросил(а) 2015-05-21T18:03:00+03:00 5 лет, 5 месяцев назад
1
Решение
92

Поэтому мне понадобился месяц, чтобы ответить за себя. То, что происходило здесь, было то, что сам GridView был коротким, но сам элемент был действительно соответствующим. Мне никогда не приходило в голову прокручивать записные книжки, но я сделал это сегодня, и остальная часть изображения появилась.

В основном ошибка заключалась в том, что у GridView была высота "wrap_content". Я изменил его на высоту 0dp и добавил тэг weight = 1, так как в конце я добавлю некоторые другие элементы под GridView. Новый xml-код для activity_my_classes:

<GridView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:numColumns="2"
android:padding="15dp"
android:id="@+id/NotebookGrid"/>

ответил(а) 2015-06-22T05:53:00+03:00 5 лет, 4 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема