gpt4 book ai didi

android - 工具栏不会在操作模式下消失

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:29:08 29 4
gpt4 key购买 nike

我正在尝试实现这样一个功能,当我长按一个列表项时,将启动操作模式并且可以删除一个或多个项目。
我在 DocumentsActivity 中开始搜索,它会启动一个带有 ListView 及其项目的 fragment DocumentsFragment。 ListAdapter 是通过在 Fragment 的 onCreate 中调用 setListAdapter(this.documentsAdapter) 方法来初始化和设置的。我在 fragment 的 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);
}

当长按列表项时, Action 模式开始,菜单 documents_context_menu 显示为 Action 栏。但问题是,操作栏出现在工具栏上方,工具栏不会消失(见图片)。

我尝试调用 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 name="android:actionMenuTextColor">@color/black</item>
</style>

Activity 中的 action bar 是这样设置的:

protected void onCreate(Bundle savedInstanceState) {
handleIntent(getIntent());
requestWindowFeature(5);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_documents);
Toolbar mToolbar = (Toolbar) findViewById(R.id.tool_bar);
setSupportActionBar(mToolbar);
args = getIntent().getExtras();
if (findViewById(R.id.container_documents) != null && savedInstanceState == null) {
showDocumentsFragment();
}
}

最佳答案

正如评论中提供的链接所指出的,您只需将以下行添加到您的 AppTheme 样式中:

<item name="windowActionModeOverlay">true</item>

它只是表明 Action 模式应该覆盖窗口内容而不是将其向下推,它告诉你不需要为 Action 模式保留任何空间。

关于android - 工具栏不会在操作模式下消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54183643/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com