【发布时间】:2019-01-14 14:43:59
【问题描述】:
我正在尝试实现这样的功能,即当我长按列表项时,将启动操作模式并且可以删除一个或多个项目。
我从DocumentsActivity 开始搜索,该搜索开始一个片段DocumentsFragment,其中包含一个ListView 及其项目。 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);
}
当长按列表项时,动作模式开始,菜单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 name="android:actionMenuTextColor">@color/black</item>
</style>
这就是在 Activity 中设置操作栏的方式:
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();
}
}
【问题讨论】:
-
您能否将您的应用程序主题代码从
styles.xml和onCreate发布到您setSupportActionBar的位置? -
@MayurGajra 我添加了来源
-
你能分享你的 Manifest 文件吗?
-
@AbhinavGupta 在那里
标签: android android-layout android-toolbar