2015-12-08 6 views
-1

Мне нужно три вкладки, которые в основном меняют сортировку в списке ниже. Мне не нужен просмотр пейджера или что-то слишком сложное, но я могу найти примеры только с пейджером вида. Я использую appCompat и панель инструментов и расширяю AppCompatActivity.Как создать вкладки без представления пейджера

Я попытался вкладки хозяина, но она невидима, когда я запустить приложение

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

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

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

     <LinearLayout 
      android:id="@+id/tab1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="horizontal" /> 
... 
+0

«Я пробовал хост вкладки, но он невидим, когда я запускаю приложение» - ну, вы добавили какие-либо вкладки? Это будет в вашем Java-коде. 'TabHost', безусловно, работает, как и' FragmentTabHost'. Библиотека поддержки дизайна также имеет реализацию табуляции, которая, хотя она * может * работать с 'ViewPager', не требует *' ViewPager' AFAIK. Все, что говорится, поскольку большинство реализаций вкладок используют «ViewPager», ваши пользователи могут рассчитывать на возможность прокрутки между вкладками, даже если вы считаете, что вам это не нужно. – CommonsWare

+0

Если вы хотите изменить сортировку, почему бы просто не изменить сортировку? Зачем нужны вкладки? – Barak

ответ

2

Это звучит, как вы просто хотите кнопки, а не вкладок. Но вы хотите, чтобы это выглядело как новый TabLayout и приложение, вы должны иметь возможность использовать новый TabLayout, который предоставляется в Design Support Libraries, однако вам не нужно будет подключать действия, чтобы на самом деле нарисовать что-либо и использовать их для запуска изменение порядка сортировки.

Компоновка Ваша деятельность будет иметь что-то вроде:

<android.support.design.widget.AppBarLayout 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent"> 

    <include layout="@layout/toolbar" /> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/tab_layout" 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:visibility="gone"/> 

</android.support.design.widget.AppBarLayout> 

В вашей деятельности вы хотите что-то вдоль линий:

mTabLayout = mActivity.getTabLayout(); 
if (mTabLayout != null) { 
    // Or manually set if you want 
    mTabLayout.setTabsFromPagerAdapter(getPagerAdapter()); 
    mPageChangeListener = new TabLayout.TabLayoutOnPageChangeListener(mTabLayout); 
    // This is the bit that you will not want as that will change pages 
    // and you aren't actually changing pages, just listening 
    // Leaving these lines in just for reference on what you would do for paging 
    // mPager.addOnPageChangeListener(mPageChangeListener); 
    mPager.addOnPageChangeListener(this); 
    //mTabLayout.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mPager)); 
} 
loadData(); 

И затем вы можете реализовать различные OnPage * методы, которые вы можете использовать, чтобы просто активировать изменения порядка сортировки, вместо того, чтобы на самом деле сменить страницы на вас.

Смежные вопросы