Ich benutze den MaterialDrawer sozusagen als Einkaufswagen, alles ist perfekt, das einzige Problem, das ich habe, ist, wenn ich versuche, die Beschreibung eines Artikels zu aktualisieren, wie ich gesehen habe, kann nur das Bad, der Name oder der Name aktualisiert werden das Symbol, aber nicht die Beschreibung, kann ich die Beschreibung irgendwie aktualisieren? In der Zwischenzeit lösche ich das Element und füge es einfach wieder hinzu, aber das ist kein effizienter Weg, und das Element ändert die Position an die letzte Stelle.
In der Zwischenzeit lösche ich den Artikel und füge ihn an derselben Stelle wieder hinzu, im Moment keine Probleme
https://github.com/mikepenz/MaterialDrawer#modify -items-or-the-drawer
Sie können das Element ändern und dann die Schublade über das Update benachrichtigen:
//modify an item of the drawer
item1.withName("A new name for this drawerItem").withBadge("19").withBadgeStyle(new BadgeStyle().withTextColor(Color.WHITE).withColorRes(R.color.md_red_700));
//notify the drawer about the updated element. it will take care about everything else
result.updateItem(item1);
` SecondaryDrawerItem Precio = new SecondaryDrawerItem()
.withBadge("RD$" + producto.getPrecio())
.withName("Precio")
.mitAuswählbar(falsch)
.withTag("Sek");
SecondaryDrawerItem ITBIS = new SecondaryDrawerItem()
.withBadge("RD$" + producto.getITBIS())
.withName("ITBIS")
.withSelectable(false)
.withTag("Sec");
SecondaryDrawerItem Desc = new SecondaryDrawerItem()
.withBadge("RD$" + producto.getDesc())
.withName("Descuento")
.withSelectable(false)
.withTag("Sec");
double total = producto.getPrecio() + producto.getITBIS() - producto.getDesc();
PrimaryDrawerItem newItem = new PrimaryDrawerItem()
.withIdentifier((long) productos.indexOf(producto))
.withSubItems(Precio, ITBIS, Desc)
.withName("" + producto.getNombre())
.withDescription(producto.getCant() + "")
.withBadge(total + "").withBadgeStyle(new BadgeStyle().withTextColor(Color.WHITE).withColorRes(R.color.md_red_700));
drawer.addItemAtPosition(newItem, pos + 1);
`
Wie Sie in meinem Code sehen können, füge ich jedes Element dynamisch hinzu, also ist es eine Art Array. Ich rufe einfach die Methode add item auf und übergebe einige Attribute und das wars, das Problem ist das Abrufen dieser Daten
@lcapellanWork Wenn Sie dann Änderungen
Alternativ könnten Sie den Artikeln eine eindeutige Kennung geben und den Artikel über die Kennung abrufen und dasselbe tun:
https://github.com/mikepenz/MaterialDrawer/blob/develop/library/src/main/java/com/mikepenz/materialdrawer/Drawer.java#L429
Oder Sie aktualisieren einfach das Element an der Position mit einem neuen Element:
https://github.com/mikepenz/MaterialDrawer/blob/develop/library/src/main/java/com/mikepenz/materialdrawer/Drawer.java#L712
Danke für die Hilfe, ich benutze das Update-Element an Position und es funktioniert, aber jetzt glaube ich, dass ich einen neuen Fehler gefunden habe, oder vielleicht mache ich etwas falsch, wie Sie an meinem Code sehen, habe ich Unterelemente, wenn ich ein hinzufüge neuer Artikel, wenn ein Artikel in der Schublade geöffnet ist, wird der Unterartikel hinzugefügt, aber nicht der Artikel.
es sollte ein neues Primärelement mit 4 Unterelementen geben, aber das neue Primärelement wird nie hinzugefügt und es gibt nur 4 neue Unterelemente ohne ein übergeordnetes Primärelement.
In der Zwischenzeit habe ich eine wirklich nicht so speicherfreundliche Lösung, lösche alle Elemente und lade sie erneut, da ich alle Daten in einem Array speichere, habe ich versucht, die Benachrichtigung zu verwenden, aber es gibt mir eine Art des Threadfehlers.
Kannst du die Unterpunkte bitte etwas genauer beschreiben?
Sie ändern die Unterposition oder nur eine Position?
Vielleicht können Sie v7.0.0-rc01 ausprobieren, das mit dem fastAdapter v4 geliefert wird, der dieses Problem behebt
@mikepenz gibt es eine Möglichkeit, ProfileDrawerItem
auf v7.0.0-rc01
zu aktualisieren? Ich scheitere mit:
drawer?.updateName(1, StringHolder("Test"))
sieht so aus, als ob ProfileDrawerItem
nicht Nameable
, um eine solche Aktion auszuführen. Ihr Link hier ist nicht mehr gültig: https://github.com/mikepenz/MaterialDrawer/issues/2429#
Entschuldigung, dass ich diese Frage unter diesem Ticket stelle, aber ich denke, das könnte irgendwie zusammenhängen.
@Guziq es gibt eine spezielle Methode zum Aktualisieren von Profilen: https://github.com/mikepenz/MaterialDrawer/blob/develop/library/src/main/java/com/mikepenz/materialdrawer/AccountHeader.kt#L201
Kannst du die Unterpunkte bitte etwas genauer beschreiben?
Sie ändern die Unterposition oder nur eine Position?
Vielleicht können Sie v7.0.0-rc01 ausprobieren, das mit dem fastAdapter v4 geliefert wird, der dieses Problem behebt
Wie Sie sehen können, können wir beim Hinzufügen eines neuen PrimaryItems SecondaryItems als Unterelemente hinzufügen. Gibt es eine Möglichkeit, das übergeordnete Element zu löschen und dann die Unterelemente mit dem übergeordneten Element zu löschen?
@lcapellanWork Die einfachste und beste Lösung hierfür besteht darin, das erweiterte Element einfach zu
@lcapellanWork Die einfachste und beste Lösung hierfür besteht darin, das erweiterte Element einfach zu
Mhmm werde das jetzt mal versuchen, vielen Dank für die Hilfe.