Переключаться между представлениями Android

Я кодирую приложение, которое имеет активность, которая может предоставить конечному пользователю данные в двух форматах. Просмотр столбцов с помощью Teechart api (доступно здесь:

Этот код отлично работает и не дает мне никаких проблем, я просто задаюсь вопросом, можно ли это сделать лучше, например, с помощью флиппера? И если да, то каким образом я могу реализовать код flipper для переключения между этими двумя представлениями?

Или я должен использовать фрагменты для каждого представления? Любая помощь приветствуется.

3
tutorial viewFlipper Android: helloandroid.com/tutorials/how-use-viewflipper < a href = "http://www.techrepublic.com/blog/app-builder/a-dog-limps-into-a-saloon-a-tutorial-on-androids-viewflipper-widget/634" rel = "nofollow noreferrer "> techrepublic.com/blog/app-builder/…
добавлено автор Houcine, источник
это прекрасно работает, если вы никогда раньше не работали с фрагментами, и у этого приложения нет конкретного требования работать на планшетах и ​​телефонах, не беспокойтесь о них. Я просто удалю флаг и использую (listLayout.getVisibility() == View.VISIBLE вместо этого
добавлено автор Budius, источник
использует флаг, собирающийся съесть больше памяти, потому что im добавляет другую переменную? Я хочу, чтобы это было настолько гладко, насколько это возможно.
добавлено автор inner_class7, источник
Также у меня есть планшеты планшета для приложения, и они не согласуются с макетами телефона. Должен ли я читать фрагменты, если я хочу, чтобы этот пользовательский интерфейс был гладким?
добавлено автор inner_class7, источник

2 ответы

Maybe this could be of help to you: Animate between Views

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

<Сильный> Update: That tutorial also gives links to various Animation docs. From that, I think you can use Rotate Animation to create the flip effect. You can give the angle of rotation and the pivot about which to rotate the view.

Понятие состоит в том, что вы поворачиваете один вид out и поворачиваете в другое представление.

<Сильный> Update:

View Flipper - это реализация анимации между представлениями. Вышеупомянутый метод, который я опубликовал, был общим, вы можете играть со значениями и создавать анимации с вами, имея гораздо более тонкий контроль. Вы можете создавать переходы между представлениями, которые другие, возможно, никогда не пробовали.

Шаги для просмотра Flipper:

1. In View Flipper, you define a Flipper element in your Layout xml file. To this flipper element, you add two child elements, which could simply be two Views OR two Layouts OR one View and one Layout. The View Flipper flips between these two Views you have defined.

2. Once you have created this much in XML, you then create four animation rules under /res/anim for the following types of entry and exit transitions:

a. Left In

b. Left Out

c. Right In

d. Right Out

3. After 1 and 2, you now add Touch or Gesture listeners in your code, to listen for Touch and Listen events. Inside these listeners, you then initiate the animation using vf.setInAnimation() or vf.setOutAnimation(), where vf is your ViewFlipper instance.

Здесь вы можете найти полный код:

1. View Flipper Tutorial 1

2. View Flipper Tutorial 2

<Сильный> Update: A few tweaks have to be made to make View Flipper work with ListView. I found this other SO question where the same problem was solved with a minor edit. Check it out here.

6
добавлено
Я обновил свой ответ, чтобы объяснить «Просмотр флиппера», а также предоставил две обучающие ссылки с полными примерами кода. Также объясняется разница между View Flipper и General Animations.
добавлено автор sanjeev mk, источник
Другой вопрос SO решил ту же проблему. Я опубликовал ссылку в обновленном ответе. Посмотрите, решит ли он вашу проблему.
добавлено автор sanjeev mk, источник
Так ли это работает? Похоже, если я просто добавлю анимацию к моим двум макетам, я могу получить этот эффект, не изменяя много кода.
добавлено автор inner_class7, источник
Круто спасибо тонну.
добавлено автор inner_class7, источник
Если я использую это, так как оба представления прокручиваются, нет возможности перевернуть представление? Как реализовать плагин просмотра в списке?
добавлено автор inner_class7, источник

Если у вас есть только два вида, которые вы хотите переключить, этот подход достаточно хорош. Тем не менее, вы можете использовать пейджер представления для реализации этого. Такой подход особенно полезен, если у вас есть несколько представлений, чтобы вы не отображали их сразу и не теряли память. ViewPager будет управлять, когда создавать и уничтожать представления.

  1. Define in layout

    
    
  2. Create an adapter

    class MyPagerAdapter extends PagerAdapter {
    
        public int getCount() {
            return 2;
        }
    
        public Object instantiateItem(View collection, int position) {
            LayoutInflater inflater = (LayoutInflater) collection.getContext().getSystemService(
                    Context.LAYOUT_INFLATER_SERVICE);
    
           //Inflate the correct view based on position
            View view = inflater.inflate(R.layout.yourLayoutHere, null);
    
           //... Setup the view
    
            ((ViewPager) collection).addView(view, 0);
            return view;
        }
    
        @Override
        public void destroyItem(View arg0, int arg1, Object arg2) {
            ((ViewPager) arg0).removeView((View) arg2);
        }
    
        @Override
        public boolean isViewFromObject(View arg0, Object arg1) {
            return arg0 == ((View) arg1);
        }
    
        @Override
        public Parcelable saveState() {
            return null;
        }
    }
    
  3. Set the adapter

    ViewPager viewPager = findViewById(R.id.viewPager);
    viewPager.setAdapter(new MyPagerAdapter());
    

Теперь при нажатии кнопки вы можете установить текущий пункт просмотра пейджера.

    viewPager.setCurrentItem(position);
1
добавлено
Спасибо за ответ. Если это достаточно хороший подход, я просто оставлю его добавлением анимации, чтобы он выглядел так, будто взгляды перелистывают и выходят. Его единственное, что будет два взгляда, поэтому я не буду тратить много памяти, так как данные извлекаются из локального db. Если мои требования меняются, например, обращение к веб-сервису с использованием HTTPTransportSE или что-то, я передумаю изменить свой подход к чему-то подобному. Еще раз спасибо.
добавлено автор inner_class7, источник
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

Android Developers
Android Developers
4 476 участник(ов)

Общаемся на темы, посвященным Android-разработке, SDK, Kotlin, Realm и т.д.

Android Architecture
Android Architecture
2 186 участник(ов)

Русскоязычный чат по архитектуре в андроид приложениях. Подробнее: http://telegra.ph/Android-Architecture-12-24

rus-speaking/android
rus-speaking/android
1 705 участник(ов)

Основной чат по Android разработке (вопрос-ответ). ПРАВИЛА: bit.ly/andr-rules. NEWS: bit.ly/AnrdResId ЧАТЫ: Основной: bit.ly/andr-main IDE, сборка, Git, сервисы: bit.ly/andr-tools Оффтоп: bit.ly/andr-offtop Конференции, события: bit.ly/andr-events Вакансии, найм: bit.ly/andr-job Архитектура: bit.ly/andr-patterns Rx: bit.ly/andr-rx Тестирование: bit.ly/andr-test Kotlin: bit.ly/andr-kotlin Хаmarin: bit.ly/andr-xamarin За мат, спам, агрессию, предложения о работе, оффтоп в этом канале - бан на сутки и более ☢☢☢

Android Dev Подкаст
Android Dev Подкаст
1 325 участник(ов)

Комната для обсуждения Android Dev подкаста apptractor.ru/AndroidDev/ Общее обсуждение Android: https://t.me/android_ru Остальные чаты про Android: http://t.me/devChats Наши новости https://t.me/androiddevpodcast_news

Android Guards
Android Guards
602 участник(ов)

Обсуждение любых вопросов касающихся безопасности Android. - Защита системы и приложений - Уязвимости и эксплойты - Вредоносное ПО - Копание в кишках системы и приложений (RE)

Android JOB
Android JOB
466 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению Android (full-time, part-time, remote и разовые подработки)

AndroidDev :: Разработка. It's Android time now!
AndroidDev :: Разработка. It's Android time now!
458 участник(ов)

It's Android time now! Чат разработчиков Android. Вакансии, резюме и информацию о митапах размещать можно. Публикацию скрытой и явной рекламы ваших каналов и сайтов после получения разрешения от @olegushakov

Aandroid Talks!
Aandroid Talks!
212 участник(ов)

Чат об общих вопросах по ОС Android. Чат для разработки под андроид - pro.android: https://t.me/joinchat/AAAAAEKIFKnmRT9cMebb9w

Android Rus
Android Rus
68 участник(ов)