Подтвердить что ты не робот

Получение DrawerLayout для перемещения по ActionBar

У меня есть скользящее меню ящика в действии, в котором есть панель действий с некоторыми вкладками.

Я бы хотел, чтобы скользящий ящик скользил по вкладкам, а не под ними.

Вот как это выглядит прямо сейчас...

Sliding menu under action bar tabs

Любые идеи о том, как это можно сделать?

Примечание. Я понимаю, что я мог бы нарушать некоторые условные обозначения и шаблоны пользовательского интерфейса здесь, и если он вообще не работает, я рассмотрю альтернативы. Но я хотел бы сначала начать эту работу.

РЕДАКТИРОВАТЬ:. См. снимок экрана приложения Google Play Music, который делает именно то, что мне нужно. См. Ниже @CommonsWare, где он согласен с тем, что я могу нарушить соглашение. Но затем, учитывая приложение Play Music, это может быть совсем не так редко.

Proper navigation with tabs sliding correctly

4b9b3361

Ответ 1

Любые идеи о том, как это можно сделать?

Выполните одно из следующих действий:

  • Отключите вкладки панели действий, возможно, до ViewPager и индикатор с вкладками (PagerTabStrip, TabPageIndicator из ViewPageIndicator)

  • Посмотрите, не изменилась ли существующая реализация стороннего ящика на новые стандарты пользовательского интерфейса.

  • Fork DrawerLayout и измените его в соответствии с

  • Сбросьте свой собственный ящик для навигации с нуля

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

Правильно.

Ответ 2

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

  • ActionBarSherlock (github)
  • вложенные фрагменты (github)
  • PagerSlidingTabStrip (github)
  • NavigationDrawer (сайт разработчика Android)
  • Последняя поддержка v4-библиотеки

Я создал проект "Навигационный ящик с примером вкладки" в github, посмотрите на него.

Ниже приведен снимок экрана.

Navigation-drawer-page-sliding-tab-strip

Ответ 3

Также проверьте эту библиотеку http://www.androidviews.net/2013/04/pager-sliding-tabstrip/ Парень отлично поработал. Вы можете использовать его с навигационным ящиком, и он отлично работает.

Ответ 5

Это можно сделать БЕЗ сторонней библиотеки. Ознакомьтесь с образцами Google Sliding Tabs

     SlidingTabsBasic:   http://developer.android.com/samples/SlidingTabsBasic/project.html
     SlidingTabsColors:  http://developer.android.com/samples/SlidingTabsColors/project.html

Кроме того, проверьте эту удивительную ссылку: http://manishkpr.webheavens.com/android-sliding-tabs-example/ Работала для меня как шарм.:)

Ответ 6

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

Ответ 7

Мне удалось достичь этого требования, установив режим навигации в функциях OnDrawerClosed и onDrawerOpened. Это временное исправление, так как вкладки фактически не исчезают немедленно.

  public void onDrawerClosed(View view) {
          getActionBar().setTitle(mTitle);
          if(getActionBar().getTabCount()>0) //Add tabs when the fragment has it
          getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);               
                        ...
                    }

   public void onDrawerOpened(View drawerView) {
            getActionBar().setTitle(mDrawerTitle);
            getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);              
                    ..

                    }

Если у вас есть фрагменты с вкладками и другие без него, не забудьте удалить вкладки onCreateView фрагмента, у которого нет вкладок.

 getActionBar().removeAllTabs();

Ответ 8

Панель действий Navigaton Drawer и SwipeTabs могут использоваться одновременно. Вы должны реализовать навигационный ящик с помощью Actionbar и swipetabs с помощью простых Tabhosts. Вы можете использовать Tabhost для вкладок и использовать фрагменты для внутреннего вида каждой вкладки. Фрагменты должны использоваться с помощью viewpager для обеспечения эффекта прокрутки/прокрутки. Соедините вкладки и просмотрщик с помощью друг друга через свои методы.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TabHost
    android:id="@+id/tabHost"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <HorizontalScrollView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:fillViewport="true"
            android:scrollbars="none" >

            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
            </TabWidget>
        </HorizontalScrollView>

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >

            <android.support.v4.view.ViewPager
                android:id="@+id/viewPager_home"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </FrameLayout>
    </LinearLayout>
</TabHost>

Ответ 9

Воспроизведение музыки не использует стандартный ActionBar.Tab Затем вы можете реализовать свой собственный контейнер табуляции, расширив HorizontalScrollView и работать вместе с ViewPager

Ответ 10

У меня есть вкладки внутри фрагмента ящика. Я решаю эту проблему, добавляя

getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

в onDrawerClosed() и getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); в onDrawerOpend().

Надеюсь, это поможет вам.