2014-10-30 4 views
7

Кто-нибудь знает, если панель действий split, когда узкая функция была удалена с Android 5.0? Похоже, что это больше не влияет на макет.Сплит панель действий на Android 5.0 (Lollipop)

+5

вы обеспечиваете нижнюю и верхнюю панель теперь не системы – tyczj

+0

, как мы делаем это для обратной совместимости? Когда taget SDK равен 21, а библиотека appcompat также находится на уровне 21, система разбивает actionBar, но я вижу все элементы действия, переполненные вверху, с пустой белой полосой внизу. – iTapAndroid

+2

Насколько я видел, вам нужно реализовать панель инструментов, которую вы размещаете внизу. Не должно быть большой проблемой. Что я еще не мог понять, потому что у меня было слишком мало времени, чтобы равномерно распределить значки на панели действий. – Florian

ответ

9

Поскольку этот вопрос не был действительно ответил раньше ...

Кто-нибудь знает, если панель действий раскол, когда узкая функция была удалена из Android 5.0?

Да, it was, хотя that change is not documented вне самой записи трекера проблемы.

3

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

Toolbar toolbarBottom = (Toolbar) findViewById(R.id.toolbar_bottom); 
    toolbarBottom.inflateMenu(R.menu.menu_bottom); 
    toolbarBottom.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { 
     @Override 
     public boolean onMenuItemClick(MenuItem menuItem) { 
      //your code 
      return false; 
     } 
    }); 

Важно сказать, что эта функция имеет обратную совместимость с AppCompat поддержкой

compile "com.android.support:appcompat-v7:21.0.+" 

Вы также должны объявить панель в макете.

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

<android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="?attr/colorPrimary" 
    android:minHeight="?attr/actionBarSize" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /> 

<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar_bottom" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:background="?attr/colorPrimary" 
    android:minHeight="?attr/actionBarSize"/> 

    <LinearLayout 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingTop="?attr/actionBarSize" 
    android:layout_above="@id/toolbar" 
    android:layout_below="@id/toolbar_bottom" /> 
</LinearLayout> 

0

Как и другие ответы, которые вы можете создавать свои собственные бары с меню файлов XML или непосредственно из кода.
Панель инструментов не будет отображать два или более элементов, видимых всегда, но вы можете заставить панель инструментов отображать кнопки действий, видимые всегда, и операции переполнения автоматически создадут меню опций.
Другие основные настройки могут выполняться с помощью xml-файлов.
Код:

final Toolbar lowerTool=(Toolbar)findViewById(R.id.lower_toolbar); 
     lowerTool.inflateMenu(R.menu.lower_toolbar_menu); 
     lowerTool.getMenu().findItem(com.tvf.emag.R.id.action_previous).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT| MenuItem.SHOW_AS_ACTION_IF_ROOM); 
     lowerTool.getMenu().findItem(com.tvf.emag.R.id.action_previous).setEnabled(mPager.getCurrentItem() > 0); 
     lowerTool.getMenu().add(Menu.NONE, com.tvf.emag.R.id.action_next, Menu.NONE, 
       (mPager.getCurrentItem() == mPagerAdapter.getCount() - 1) 
         ? com.tvf.emag.R.string.action_finish 
         : com.tvf.emag.R.string.action_next); 
     lowerTool.getMenu().findItem(com.tvf.emag.R.id.action_next).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT| MenuItem.SHOW_AS_ACTION_IF_ROOM); 
     lowerTool.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { 
      @Override 
      public boolean onMenuItemClick(MenuItem menuItem) { 
       switch (menuItem.getItemId()) { 
        case com.tvf.emag.R.id.action_previous: 
         mPager.setCurrentItem(mPager.getCurrentItem() - 1); 
         return true; 
        case com.tvf.emag.R.id.action_next: 
         mPager.setCurrentItem(mPager.getCurrentItem() + 1); 
         return true; 
       } 
       return true; 
      } 
     }); 
Смежные вопросы