Как надуть взгляд в определенной позиции? - PullRequest
6 голосов
/ 30 декабря 2010

У меня есть действие с кнопками «Добавить» и «Удалить».

«Кнопка добавления» раздувает вид, кнопка «Удалить» удаляет выбранный вид.

Когда я раздуваю вид с помощью кнопки «Добавить», он автоматически рисуется под любым ранее завышенным видом.

Я хотел бы дать пользователю возможность перемещать каждый раздутый вид вверх и вниз, чтобы он мог изменять порядок, в котором они отображаются на экране (в виде эффекта drag'n'drop)

+---------------------+     +---------------------+
| +-----------------+ |     | +-----------------+ | 
| |      View 1     | |     | |      View 2     | |  
| +-----------------+ |     | +-----------------+ |
|                     | --> |                     |
| +-----------------+ |     | +-----------------+ |
| |      View 2     | |     | |      View 1     | |
| +-----------------+ |     | +-----------------+ |  
+---------------------+     +---------------------+

Можно ли указать «позицию», в которой раздувается каждый вид? (например, ниже или выше текущего выбранного представления?)

Если нет, как лучше всего достичь желаемого эффекта?

(не стесняйтесь спрашивать любой фрагмент кода, если вы думаете, что это может помочь)

1 Ответ

10 голосов
/ 30 декабря 2010

Ваш взгляд выглядит как вертикаль LinearLayout.Поэтому я бы порекомендовал вам использовать что-то вроде:

View v = inflater.inflate(R.layout.XXXX, null);
yourLinearLayout.addView(v, INDEX, new LinearLayout.LayoutParams(...)

Используя ИНДЕКС (вам нужно как-то определить), вы можете контролировать позицию.LinearLayout является дочерним классом ViewGroup, поэтому метод доступен.

Документы:

...