Как я могу ограничить количество объектов, которые пользователь может перетаскивать до определенного c макета? - PullRequest
0 голосов
/ 19 февраля 2020

Я разработал приложение для сортировки карточек, которое пользователь может перетаскивать на экран карточками в соответствии с приведенным здесь кодом - код перетаскивания

как я могу ограничить количество объектов что можно перетащить в конкретный макет c? (я хотел бы ограничить количество объектов только одним для каждого макета)

1 Ответ

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

Похоже, что это в DragEvent.ACTION_DROP, где представление добавляется к новому родителю. Поэтому, когда это происходит, вы можете просто проверить, имеет ли представление, к которому вы добавляете его, уже определенное число дочерних элементов:

Измените это:

case DragEvent.ACTION_DROP:

    ...

    View v = (View) event.getLocalState();
    ViewGroup owner = (ViewGroup) v.getParent();
    owner.removeView(v);//remove the dragged view
    LinearLayout container = (LinearLayout) view;
    container.addView(v);
    v.setVisibility(View.VISIBLE);

на следующее:

case DragEvent.ACTION_DROP:

    ...

    LinearLayout container = (LinearLayout) view;
    if (container.getChildCount() < 1) { // only move the view if the container has no kids
        View v = (View) event.getLocalState();
        ViewGroup owner = (ViewGroup) v.getParent();
        owner.removeView(v);
        container.addView(v);
    }
    v.setVisibility(View.VISIBLE);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...