相关疑难解决方法(0)

使用AppCompat-v7的工具栏和上下文ActionBar

我正在使用Lollipop和AppCompat-v7库中引入的新添加的工具栏.我按照本指南设置了工具栏我注意到当你调用一些会调出上下文ActionBar的内容(例如突出显示复制/粘贴的文本)时,它会将工具栏向下推到页面上.您可以在页面底部的图像中看到我在说什么:

所以,基本上,我这样设置它.我在xml文件中定义了工具栏,我使用包含标签:

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"/>
Run Code Online (Sandbox Code Playgroud)

然后,我在我的视图中实例化它:

<LinearLayout
    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:id="@+id/root"
    tools:context=".MainActivity">

    <include
        layout="@layout/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/> 

    <!-- Rest of view -->

    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

在代码中,我这样设置:

    // On Create method of activity:
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
Run Code Online (Sandbox Code Playgroud)

有没有人知道怎么做才能让Contextual ActionBar超越工具栏?

工具栏和上下文ActionBar

android android-appcompat android-5.0-lollipop android-toolbar

179
推荐指数
5
解决办法
6万
查看次数

工具栏不会在动作模式下消失

我正在尝试实现这样的功能:当我长按一个列表项时,动作模式应该开始,并且可以删除一个或多个项目.
我在MainActivity DocumentsActivity中开始搜索,它DocumentsFragment使用ListView及其项启动Fragment .ListAdapter setListAdapter(this.documentsAdapter)在Fragment的onCreate中通过方法调用进行初始化和设置.我onActivityCreated在片段中的listview上设置了各种监听器:

public void onActivityCreated(Bundle savedInstanceState) {

    getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
    getListView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
            getListView().setItemChecked(position, true);
            return true; 
    }});
    getListView().setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {
        @Override
        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
            menu.clear();
            ((DocumentsActivity)getActivity()).getMenuInflater().inflate(R.menu.documents_context_menu, menu);
            return true;
        }
    });
    super.onActivityCreated(savedInstanceState);
}
Run Code Online (Sandbox Code Playgroud)

当我长时间点击listitem时,操作模式开始,菜单documents_context_menu显示为操作栏.但问题是,操作栏出现在工具栏上方,工具栏不会消失(参见图片).

我试图调用getSupportActionBar().hide()或将其设置为null或甚至使用其他样式/主题.一切都行不通.有时蓝色工具栏是完全白色的,但这就是全部.

我完全不知道为什么工具栏不会消失.你能提一些建议吗?

提前致谢!

_____更新1 _____

这是styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:fitsSystemWindows">true</item>
    <item name="colorAccent">@color/darkblue100</item>
    <item name="android:actionOverflowButtonStyle">@style/ActionButtonOverflow</item>
    <item name="actionOverflowButtonStyle">@style/ActionButtonOverflow</item>
    <item …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-toolbar

5
推荐指数
2
解决办法
231
查看次数