Как запустить различные макеты, пока нижняя навигационная панель остается на месте - PullRequest
0 голосов
/ 29 апреля 2018

Как запустить различные действия, пока нижняя панель навигации всегда остается на экране. Например, если я нажимаю на вкладку в нижней панели навигации, она запускает вид карты Google, как мне сделать так, чтобы нижняя панель навигации все еще была видна. Очень похоже на приложение YouTube, нижняя панель навигации всегда есть. Если бы я мог быть направлен в правильном направлении, это было бы здорово, я мог бы сделать исследование самостоятельно

Ответы [ 2 ]

0 голосов
/ 29 апреля 2018

Fragment - это модульный раздел Деятельности, который имеет собственный жизненный цикл, имеет свои собственные макеты, представления .., (своего рода «вспомогательное действие») Еще одно очевидное преимущество использования фрагментов, оптимизация пользовательского интерфейса на разных экранах, позволяет управлять несколькими страницами за одно действие. Теперь выполните следующие действия:

  1. Создайте свой основной Acitivy расширяет FragmentActivity:

    public class MainActivity extends FragmentActivity {
    ...
    }
    
  2. Измените основной макет деятельности на что-то вроде этого:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.yourComp.appName.MainActivity">
    
        <android.support.v4.view.ViewPager
            android:id="@+id/body"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_above="@id/footer" />
    
        <LinearLayout
            android:id="@+id/footer"
            android:layout_width="match_parent"
            android:layout_height="56dp"
            android:layout_alignParentBottom="true"
            android:orientation="horizontal" />
    
    </RelativeLayout>
    
  3. Создайте новый FragmentPagerAdapter , как показано ниже, я определяю 3 страницы, но вы можете изменить это, помните, что вы должны создать один фрагмент вместо каждого действия, которое вам нужно :

    public class FragmentAdapter extends FragmentPagerAdapter {
        static final int NUMBER_OF_PAGES = 3;
        Context context;
    
        public FragmentAdapter(android.support.v4.app.FragmentManager fm, Context context) {
            super(fm);
            this.context = context;
        }
    
        @Override
        public int getCount() {
            return NUMBER_OF_PAGES;
        }
    
        @Override
        public android.support.v4.app.Fragment getItem(int position) {
            switch (position) {
                case 0:
                    return new Fragment1();
                case 1:
                    return new Fragment2();
                case 2:
                    return new Fragment3();
                default:
                    return null;
          }
       }
    }
    
  4. Теперь перейдите в Android Studio, нажмите Файл> Создать> Фрагмент> Фрагмент (пусто) и создайте фрагменты, перечисленные в FragmentAdapter ранее. Это фрагментов работает вместо ваших действий.

  5. Наконец, добавьте эти строки в основной метод Activity, метод OnCreate, цель которого - связать фрагменты, которые были объявлены ранее, с помощью viewPager в основном макете деятельности:

    ragmentAdapter = new FragmentAdapter(((FragmentActivity) this).getSupportFragmentManager(), this);
    ViewPager pager = (ViewPager) findViewById(R.id.body);
    viewPager.setAdapter(fragmentAdapter);
    

Теперь создайте свой собственный вид нижнего колонтитула или используйте BottomNavigationView . Пользователи могут перемещаться между фрагментами или программно изменять страницы, используя этот метод:

viewPager.setCurrentItem(n);  // n is fragment number that decleared in adapter 0,1,2

Кроме того, вы можете отключить ручное сканирование, как описано здесь .

0 голосов
/ 29 апреля 2018

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

Да, вы также можете использовать навигацию снизу с активностью, но вы должны создать навигацию, просмотреть все другие действия и установить слушателя. ех. Как и YouTube, скажем, 1-й вид деятельности дома с навигацией. затем вы нажимаете «тренды», трендовая активность открыта. внутри трендового действия вы снова должны создать навигационный вид.

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