В чем разница между «возвращением super.getItemId (position)» и просто возвратом «return position» - PullRequest
1 голос
/ 03 февраля 2020

В чем разница между returning super.getItemId(position) и просто возвращением return position?

@Override
public long getItemId(int position) {
    return super.getItemId(position);
}

@Override
public long getItemId(int position) {
    return position;
}

1 Ответ

1 голос
/ 03 февраля 2020

Прочитайте объяснение о super .

Вызов super.getItemId(position) вызовет getItemId в классе адаптера Recyclerview, который вернет -1 как

   /**
     * Return the stable ID for the item at <code>position</code>. If {@link #hasStableIds()}
     * would return false this method should return {@link #NO_ID}. The default implementation
     * of this method returns {@link #NO_ID}.
     *
     * @param position Adapter position to query
     * @return the stable ID of the item at position
     */
    public long getItemId(int position) {
        return NO_ID;
    }

, поэтому вы должны override getItemId метод для отправки уникального int ID (например, return position), который будет использоваться для поиска держателей, детей и т. Д. 1020 * для анимации, многократного использования держателя и часто во время тестирования et c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...