Ich habe 2 Spalten in meinem GridLayout
. Was ich tun möchte, ist, dass diese Spalten jeweils die Hälfte der Bildschirmbreite einnehmen und dann ihre untergeordneten Inhalte die Breite/Höhe ihrer eigenen Zellen füllen. Ich habe versucht, die Kinder auf fill_parent
zu setzen, aber das führt nur dazu, dass der erste die gesamte Layout übernimmt. Und es scheint, dass GridLayout weight
nicht unterstützt? Vielleicht gibt es ein besseres Layout, das verwendet werden kann, aber ich möchte ein Rasterlayout verwenden, also scheint das die natürliche Wahl zu sein.
Antwort
Zu viele Anzeigen?
Stefan Medack
Punkte
2461
Wenn Sie einen GridLayoutManager
verwenden, können Sie setSpanSizeLookup
verwenden. Hier ist ein Ausschnitt aus meinem Projekt, der Ihnen helfen sollte, diese Methode ordnungsgemäß zu verwenden:
if (mAdapter == null) {
final int columnCount = getResources().getInteger(R.integer.numberGridColumns);
mLayoutManager = new GridLayoutManager(getActivity(), columnCount);
mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
switch (mAdapter.getItemViewType(position)) {
case ListAdapter.VIEW_TYPE_ONE_COLUMN:
return columnCount;
case RecipeListAdapter.VIEW_TYPE_FULL_COLUMN:
default:
return 1;
}
}
});
mRecyclerView.setLayoutManager(mLayoutManager);
mAdapter = new RecipeListAdapter(mPresenter);
mRecyclerView.setAdapter(mAdapter);
}
mAdapter.notifyDataSetChanged();
- See previous answers
- Weitere Antworten anzeigen