Heim >Java >javaLernprogramm >Erinnern Sie sich an einen Fehler beim seitlichen Löschen von SwipeMenuListView in der Android-Entwicklung
Im Internet gibt es viele Lösungen zum Löschen von Schiebevorgängen, z. B. das Umschreiben von Listview zum Überwachen des Schiebevorgangs. Heute werden wir über die gekapselte Komponente sprechen, die von einem Freund online bereitgestellt wurde Viele Situationen. Projektadresse: https://github.com/baoyongzhang/SwipeMenuListView. Ich habe auch das Ausleihprinzip übernommen und direkt verwendet.
Aber beim Debuggen und Ausführen des gleitenden Löschens von Daten ist ein Problem aufgetreten. Die ersten Daten wurden gelöscht, aber die letzten wurden gelöscht. Um das Problem zu finden, habe ich es versucht Mit der Listenansicht gibt es kein Problem mit den Daten, was bedeutet, dass die Position des gelöschten Steuerelements beim Löschen falsch berechnet wurde. Hier sind zunächst zwei Darstellungen.
Was hat das Problem verursacht? Ich habe mir eine zuvor eingereichte Version angesehen (ich erinnere mich, dass sie zuvor gut verwendet werden konnte, was darauf hindeutet, dass es sich um ein kürzlich eingereichtes Problem handelte), also habe ich ein Problem gefunden Die getview-Methode der SwipeMenuAdapter-Klasse ist kleiner als zuvor. Ich habe versucht, die Beurteilungsbedingung zu entfernen, und habe sie erneut ausgeführt.
public View getView(int position, View convertView, ViewGroup parent) { SwipeMenuLayout layout = null; // if (convertView == null) { View contentView = mAdapter.getView(position, convertView, parent); SwipeMenu menu = new SwipeMenu(mContext); menu.setViewType(getItemViewType(position)); createMenu(menu); SwipeMenuView menuView = new SwipeMenuView(menu, (SwipeMenuListView) parent); menuView.setOnSwipeItemClickListener(this); SwipeMenuListView listView = (SwipeMenuListView) parent; layout = new SwipeMenuLayout(contentView, menuView, listView.getCloseInterpolator(), listView.getOpenInterpolator()); layout.setPosition(position); // } else { // layout = (SwipeMenuLayout) convertView; // layout.closeMenu(); // layout.setPosition(position); //// View view = mAdapter.getView(position, layout.getContentView(), //// parent); // } if (mAdapter instanceof BaseSwipListAdapter) { boolean swipEnable = (((BaseSwipListAdapter) mAdapter).getSwipEnableByPosition(position)); layout.setSwipEnable(swipEnable); } return layout; }
Der oben stehende Code Ich erinnere mich an einen Fehler beim seitlichen Löschen von SwipeMenuListView. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht Vielen Dank für Ihre Unterstützung auf der chinesischen PHP-Website
Weitere verwandte Artikel zu einem SwipeMenuListView-Side-Sliding-Löschfehler finden Sie auf der chinesischen PHP-Website