-2

Auf Knopfdruck Ich möchte Listenansicht zu Gridview wie auf shopping-cart Seiten ändern, aber mein Layout sieht aus wie Link unten gezeigt.Android Recyclerview: Ändern der Zeile von linear zu Raster auf Knopf klicken

//For displaying the row as linear list view   
case R.id.ivGrid: 
    ivList.setVisibility(View.VISIBLE); 
    ivGrid.setVisibility(View.GONE); 
    LinearLayoutManager llm = new LinearLayoutManager(context); 
    rcvProducts.setLayoutManager(llm); 
    break; 

//For displaying the row as gridview 
case R.id.ivList: 
    ivList.setVisibility(View.GONE); 
    ivGrid.setVisibility(View.VISIBLE); 
    GridLayoutManager glm = new GridLayoutManager(this,2,GridLayoutManager.VERTICAL, false); 
    rcvProducts.setLayoutManager(glm); 
    break; 

GRIDview

LISTview

Antwort

3

Nur eine GridLayoutManager verwenden und die Spanne Zahl von 1 bis 2 und wieder zurück zu wechseln.

view.setOnClickListener(new View.OnClickListener(){ 
    public void onClick(View view){ 
     GridLayoutManager layoutManager = (GridLayoutManager) grid.getLayoutManger(); 
     layoutMananger.setSpanCount(layoutManager.getSpanCount() == 2 ? 1 : 2); 
    } 
}) 
-1
  1. Pflegen 2 Adapter, eine für Listview und eine für Gridview.
  2. Bei einem Klick klicken Sie den Adapter auf RecyclerView.
  3. Listview.setAdapter (gridAdapter) (oder) ListView.setAdapter (listAdapter)
+0

Wenn ich nicht falsch bin, Manager das Layout, das für die Entscheidung, das Format der recyclerview verantwortlich ist. Adapter helfen nur dabei, die Daten in Ansichten zu bringen. –

+0

Dies ist eine schlechte Praxis der Erstellung von zwei Adaptern, Was ist, wenn die Daten dynamisch sind, müssen Sie beide aktualisieren, das ist ein zeitaufwändiger Prozess, Dies ist völlig ein falscher Ansatz! – Sanoop

Verwandte Themen