У меня возникают проблемы со строками в GridView.
Я хотел бы установить размер элементов (высота/ширина) в XML, а затем просто настроить автозапуск GridView так, как многие из них могут без растягивания. Если он не может соответствовать следующему элементу, он должен просто добавить прокладку вокруг текущего количества элементов, которые он мог поместить.
В настоящее время я получаю 2 столбца (которые для меня почти кажутся фиксированным размером), и строки растягиваются. Может кто-то, пожалуйста, помогите объяснить, что происходит и как достичь того, что я хочу?
GridView:
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/main_grid"
android:numColumns="auto_fit"
android:gravity="center"
android:paddingRight="20dp"
android:paddingLeft="20dp"
android:clipToPadding="true"
android:fitsSystemWindows="true"
android:stretchMode="none"
android:background="@drawable/main_grid_background">
</GridView>
GridItem (я хочу его 320x320, поскольку позже я вставляю в него фоновое изображение, которое выглядит странно, если это не идеальный квадрат).
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="320dp"
android:layout_height="320dp"
android:padding="10dp" >
<TextView
android:id="@+id/grid_item_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="@+id/label"
android:layout_marginTop="5dp"
android:textColor="@color/black"
android:textSize="15sp"
android:visibility="invisible"
android:layout_centerInParent="true" >
</TextView>
</RelativeLayout>
Java:
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View gridView;
if (convertView == null) {
gridView = new View(context);
// get layout from mobile.xml
gridView = inflater.inflate(R.layout.main_grid_item, null);
} else {
gridView = (View) convertView;
}
TextView textView = (TextView) gridView
.findViewById(R.id.grid_item_label);
//SET TEXT AND BACKGROUND IMAGE HERE
//gridView.setBackgroundResource(R.drawable.main_grid_item_import);
return gridView;
}