Android 5.0(Lollipop)上的分割操作栏

时间:2014-10-30 18:20:49

标签: android android-actionbar

有人知道从Android 5.0中删除了狭窄功能时的分割操作栏吗?它似乎对布局没有任何影响。

3 个答案:

答案 0 :(得分:9)

因为这个问题之前没有真正回答过......

  

有人知道从Android 5.0中移除了狭窄功能时的分割操作栏吗?

是,it was,但问题跟踪条目本身之外的that change is not documented

答案 1 :(得分: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> 

答案 2 :(得分: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;
            }
        });