您的位置:首页 > 移动开发 > Android开发

Android Toolbar使用ActionMode

2016-06-24 16:35 429 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。转载请注明原地址

目录(?)[+]

Toolbar使用ActionMode

Toolbar使用ActionMode
基本情况
设置Style
Java
总结
谢谢

基本情况

ActionMode 其实是一种菜单方式,从Android3.0之后出现,可以通过AppCompat兼容老版本。

Android5.0之后的MD设计,使用了Toolbar代替了ActionBar,如何在使用Toolbar的时候,能够适配ActionMode



设置Style

<style name="AppTheme" parent="AppTheme.Parent">
<!-- Customize theme here. -->

</style>

<style name="AppTheme.Parent" parent="Theme.AppCompat">
<item name="windowActionModeOverlay">true</item>
<item name="windowActionBarOverlay">true</item>
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>


以上的
<item name="windowActionModeOverlay">true</item>
其实是为了能够让ActionMode能够覆盖我们的Toolbar,否则会出现ActionMode将Toolbar顶下去的样子(重复出现)



当然,也有可能出现ActionMode和Toolbar的颜色不同,或者高度不一致的问题



再次修改style,最终的 style.xml:

<style name="AppTheme" parent="AppTheme.Parent">
<!-- Customize theme here. -->
<item name="actionModeStyle">@style/CustomActionMode</item>
</style>

<style name="AppTheme.Parent" parent="Theme.AppCompat">
<item name="windowActionModeOverlay">true</item>
<item name="windowActionBarOverlay">true</item>
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>

<style name="CustomActionMode" parent="@style/Widget.AppCompat.ActionMode">
<item name="background">@color/primary_color</item>
<item name="height">64dp</item>
</style>


Java

注意:

ActionMode.Callback
接口使用android.support.v7.view.ActionMode 而不是android.view.ActionMode
其实Toolbar适配ActionMode最重要的是:设置正确的style,对于有自己的设计需求,修改CustomActionMode便可。

转自:http://blog.csdn.net/u012336923/article/details/50865120
Activity需要继承AppCompatActivity
通过startSupportActionMode启动ActionMode而不是startActionMode
private ActionMode.Callback mCallback = new ActionMode.Callback() {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
mode.setTitle("This is Title");
mode.setSubtitle("This is SubTitle");
getMenuInflater().inflate(R.menu.menu_item_callback, menu);
return true;
}

@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}

@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
return false;
}

@Override
public void onDestroyActionMode(ActionMode mode) {

}
};

...

startSupportActionMode(mCallback);

总结

其实Toolbar适配ActionMode最重要的是:设置正确的style,对于有自己的设计需求,修改CustomActionMode便可。

转自:http://blog.csdn.net/u012336923/article/details/50865120

谢谢

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: