Замена ListView на MapView - PullRequest
       2

Замена ListView на MapView

1 голос
/ 09 марта 2012

У меня Activity, где у меня ListView, но при нажатии Button я хочу заменить ListView на MapView.
У меня есть несколько вариантов, чтобы сделатьэто похоже на загрузку MapView в макете, но настройку видимости на View.GONE и отображение его только тогда, когда пользователь нажимает кнопку.
Другой вариант - использовать removeView() и * 1010.* однако я не могу сделать это, поскольку Layout - это LinearLayout, и в середине его следует добавить представление (не знаю, есть ли способ сделать это).
Последний вариант - использовать ViewStub,Однако я никогда не использовал это раньше.

Какой из вышеперечисленных вариантов лучше всего подходит для производительности и почему?Учитывая, что пользователь может переключаться между ListView и MapView несколько раз.

Редактировать: Забыл упомянуть ViewSwitcher, никогда раньше этим не пользовался.

Ответы [ 2 ]

0 голосов
/ 10 марта 2012

После долгих поисков я узнал эти вещи -
Добавление и удаление представлений было бы слишком плохим и склонным к сбоям.
Настройка видимости - хороший вариант, однако производительность не влияетулучшение.
Использование ViewStub является лучшим решением, поскольку время начальной загрузки сокращается.
Использование ViewFlipper также очень простое в использовании решение.Это так просто, что я в итоге использовал ViewFlipper в своем приложении, и это не оказало существенного влияния на производительность. (Основная причина заключалась в том, что в него легко добавлять анимацию)

Я пытаюсь использовать ViewStub в ViewFlipper.Я дам вам знать, когда мне это удастся.

PS: Вопрос по-прежнему открыт для ответов.Дайте мне знать, если я ошибся здесь.

0 голосов
/ 09 марта 2012

Создайте один LinearLayout, в котором есть два виджета ListView и MapView.В методе onCreate вашего Activity установите видимость ваших ListView на Gone с помощью:

    listview.setvisibility(View.GONE);
    mapview.setvisibility(View.VISIBLE);

методов, а затем при нажатии кнопки прослушивателя введите следующий код, как показано ниже:

btn.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                mapview.setvisibility(View.GONE);
listview.setvisibility(View.VISIBLE);

//set adapter of your listview
            }
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...