当前位置: 首页 > >

java 调用cab_java

发布时间:

我真的很坚持这一点。


我想在片段中使用CAB,所以我正在使用


actionMode = ((MainActivity)getActivity()).startActionMode(actionModeCallbacks);


调用startActionMode


我一直在更改主题,并为xml样式添加和测试几行代码(在一起和分开):


true


true


false


false


true


true


相关信息:


我在内部定义了工具栏,并在主要活动中定义了 。


工具栏位于MainActivity框架的前面,在该框架和DrawerLayout之间,因此可以在片段中使用该工具栏。


我已经在“主要活动”中测试了CAB,但它也位于工具栏上方。


在创建/销毁CAB时,我还尝试了一种肮脏的变通方法来切换工具栏可见性,但是它也不起作用!


我使用的是android.view.ActionMode而不是android.support.v7.view.ActionMode因为如果使用支持库(?),则无法调用startActionMode。


我的工具栏(* android.support.v7.widget.Toolbar):


toolbar = findViewById(R.id.toolbar);


mDrawerLayout = findViewById(R.id.drawer_layout);


toolbar.setTitle(R.string.addWordLabel_Act);


setSupportActionBar(toolbar);


toolbar.setNavigationIcon(R.drawable.ic_menu_white_24dp);


XML(工具栏)



android:layout_width="match_parent"


android:layout_height="match_parent"


xmlns:app="http://schemas.android.com/apk/res-auto">



android:id="@+id/toolbar"


android:layout_width="match_parent"


android:layout_height="?attr/actionBarSize"


android:background="#FAFAFA"


android:theme="@style/AppTheme.NoActionBar"


app:collapseIcon="@drawable/ic_arrow_back_white_24dp"


app:contentInsetStartWithNavigation="0dp"


app:popupTheme="@style/ThemeOverlay.AppCompat.Light"


app:title="@string/addWordLabel_Act"


app:titleTextColor="@color/colorAccent"


/>


ActionMode.Callback


private ActionMode actionMode;


private ActionMode.Callback actionModeCallbacks = new ActionMode.Callback()


{


@Override


public boolean onCreateActionMode(ActionMode mode, Menu menu) {


mode.getMenuInflater().inflate(R.menu.action_mode_menu, menu);


return true;


}


@Override


public boolean onPrepareActionMode(ActionMode mode, Menu menu) {


return false;


}


@Override


public boolean onActionItemClicked(ActionMode mode, MenuItem item) {


switch (item.getItemId()) {


case R.id.share_actionMode:


shareWord();


mode.finish();


return true;


case R.id.deleteWords_actionMode:


deleteWords();


mode.finish();


return true;


default:


return false;


}


}


@Override


public void onDestroyActionMode(ActionMode mode) {


actionMode = null;


}


};


XML(CAB)



android:icon="@drawable/ic_share_white_24dp"


android:id="@+id/share_actionMode"/>



android:title="Delete"


android:icon="@drawable/ic_round_delete_outline_white_24px"/>


和样式


false


true


@color/colorPrimary


@color/colorPrimaryDark


@color/lightAccent


@color/colorSecondary


@font/sans_serif_roboto


@style/AlertDialogStyle


true




我不知道还能做什么。


解决了


我完全忘了检查清单,这就是问题所在! AppTheme设置为"Theme.AppCompat.Light.NoActionBar"而不是"AppTheme" 。 因此,我对AppTheme所做的任何更改均未对App生效。



友情链接: