54 Stimmen

Gitterlayout Spaltenbreite

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.

0voto

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();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X