标签: android-actionmode

在工具栏上显示ActionMode

我试图使用android.view.ActionMode新的android.support.v7.widget.Toolbar,除了传统的android.app.ActionBar.我可以用以下方式显示它:

toolbar.startActionMode(callback);
Run Code Online (Sandbox Code Playgroud)

问题是,ActionMode显示在ActionBar,而不是在Toolbar.有办法改变吗?

我试图在我的主题中设置以下内容,但它似乎没有改变任何东西:

<item name="windowActionModeOverlay">true</item>
Run Code Online (Sandbox Code Playgroud)

android android-support-library android-actionmode android-toolbar

85
推荐指数
6
解决办法
3万
查看次数

创建ActionMode时未调用onPrepareActionMode

我刚刚将我的一个应用程序调整到新的v22.1.1支持和appcompat库,请参阅此处此处了解更多详细信息.当我做一些测试时,我正在使用的ActionModes出现了问题.

当您使用调用启动ActionMode时startSupportActionMode() - 如果您使用现已弃用的ActionBarActivity基类或新的AppCompatActivity基类 - onPrepareActionMode()则不会被调用.

onPrepareActionMode()最初使用时创建ActionMode时,会自动调用先前版本(包括v21.0.3和v22.0.0)startSupportActionMode().

我在2.2,4.4.2和5.0设备上测试了它,所以它似乎不依赖于版本.

有谁知道,如果这是预期的行为,那是在v22.1.1中引入的,还是一个bug?

我发现了这个问题,但这里没有很多反馈......

2015年5月11日编辑:

Android问题跟踪器159527中所述,此问题不仅影响appcompat和支持库的v22.1.x,还影响5.1 Android实现.

目前有两种可能的临时解决方案,一般是:

@Override
public ActionMode startSupportActionMode(final ActionMode.Callback callback) {
  // Fix for bug https://code.google.com/p/android/issues/detail?id=159527
  final ActionMode mode = super.startSupportActionMode(callback);
  if (mode != null) {
    mode.invalidate();
  }
  return mode;
}
Run Code Online (Sandbox Code Playgroud)

和一个'快速和脏'的(当你实例化你的ActionMode时):

final ActionMode actionMode = startSupportActionMode(new MyActionMode());
if(actionMode != null) {
    actionMode.invalidate();
}
Run Code Online (Sandbox Code Playgroud)

如果您不使用appcompat(ActionBarActivity/ AppCompatActivity),则需要替换 …

android android-appcompat android-support-library android-actionmode

78
推荐指数
1
解决办法
4439
查看次数

如何在材料设计中使用appCompat自定义上下文操作栏

MainActivity.java

MultiChoiceModeListener在这个类中实现了以下是代码:

listView:

listView.setMultiChoiceModeListener(MainActivity.this);
listView.setChoiceMode(listView.CHOICE_MODE_MULTIPLE_MODAL);


    @Override
    public boolean onActionItemClicked(ActionMode arg0, MenuItem arg1) {
        switch (arg1.getItemId()) {
        case R.id.save:

            // Close CAB
            arg0.finish();
            return true;

        case R.id.saveto:


            // Close CAB
            arg0.finish();
            return true;
        default:
            return false;
        }
    }

    @Override
    public boolean onCreateActionMode(ActionMode arg0, Menu arg1) {
        arg0.getMenuInflater().inflate(R.menu.save_menu, arg1);
        return true;

    }

    @Override
    public void onDestroyActionMode(ActionMode arg0) {
        listadaptor.removeSelection();
    }

    @Override
    public boolean onPrepareActionMode(ActionMode arg0, Menu arg1) {
        return false;
    }

    @Override
    public void onItemCheckedStateChanged(ActionMode arg0, int arg1, …
Run Code Online (Sandbox Code Playgroud)

android android-actionmode material-design

41
推荐指数
2
解决办法
2万
查看次数

如何使上下文动作模式栏覆盖我的布局而不是"推"它

我为我的应用程序实现了自己的viewgroup.由于各种原因,使用操作栏不是一个选项,所以在我的视图组中,我有自己的"动作栏",一个在顶部,一个在底部.图1说明了我当前的布局.

图片1

正如您所看到的,布局中有两个edittexts,一切看起来都不错.

但是,当用户在任何edittexts中选择一些文本时,将显示上下文动作模式栏.图2说明了这一点.

图2

当发生这种情况时,actionmode bar会"按下"我的整个布局以获得它的空间.在平板电脑和其他大屏幕设备中,这是可以的,但在较小的设备中,尤其是软键盘可见时,剩余高度太小(横向不可用).

我想要做的是动作模式栏来覆盖我的布局而不是按下它,如图3所示.

图3

那可能吗?

android android-actionmode

39
推荐指数
2
解决办法
1万
查看次数

具有工具栏偏移内容的ActionMode

Ohoy.当我将我的应用程序升级到L时,我将ActionBars替换为工具栏,每当我启动ActionMode时,它都会推送所有内容.(我想这是因为再次显示ActionBar以显示ActionMode.)是否可以将ActionMode显示为叠加层,还是将其置于工具栏中?

也没有任何样式选项似乎适用于它,这让我想知道是否有一种新的方式来设计它.有任何想法吗?

即时通讯使用程序兼容性V7 21,到目前为止,我用尽windowActionModeOverlay=truetoolbar.startActionMode(..)

运行ActionMode的列表

android android-actionmode android-5.0-lollipop android-toolbar

27
推荐指数
1
解决办法
6497
查看次数

使用ActionMode时,Lollipop上的状态栏变黑

我有一个状态栏,主题集中包含以下内容:

<!-- Base Theme for all "Material"-esque styles. We use NoActionBar
     so we can use the Toolbar at runtime.
-->
<style name="Material" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:windowTranslucentStatus">true</item>
    ...
</style>
Run Code Online (Sandbox Code Playgroud)

DrawerLayout的大多数活动都有,它使用以下方式设置状态栏的颜色:

    mDrawerLayout.setStatusBarBackgroundColor(getResources().getColor(R.color.myapp_green));
Run Code Online (Sandbox Code Playgroud)

我使用的是a Toolbar,而不是默认值ActionBar,因此它存在于我的布局中(即导航抽屉在其上绘制).

一切都很好,除了在我的一个活动中,我有一个多选模式ActionMode.当ActionMode激活它(使用长按)时,它覆盖Toolbar使用:

<item name="android:windowActionModeOverlay">true</item>
<item name="windowActionModeOverlay">true</item>
<item name="actionModeStyle">@style/Material.Widget.ActionMode</item>
Run Code Online (Sandbox Code Playgroud)

Material.Widget.ActionMode风格是:

<style name="Material.Widget.ActionMode" parent="@style/Widget.AppCompat.ActionMode">
    <item name="android:background">@color/myapp_green</item>
    <item name="background">@color/myapp_green</item>
</style>
Run Code Online (Sandbox Code Playgroud)

现在,问题在于,只要发生这种情况,状态栏就会从myapp_green颜色变为黑色.这几乎就像关闭了状态栏半透明(我使用的是Android 5.0).我想知道如何才能使这种行为不会发生,并保持状态栏的颜色/半透明度.

我试图添加<item name="android:windowTranslucentStatus">true</item>动作模式的样式,以及添加<item name="android:statusBarColor">@color/myapp_green</item>样式ActionMode,两者都没有成功.

更新:

我想知道这是否与我设置状态栏背景的不稳定方式有关.我的所有Activity类都派生自NavigationDrawerActivity.java:

/**
 * An …
Run Code Online (Sandbox Code Playgroud)

android statusbar android-actionmode

25
推荐指数
1
解决办法
7135
查看次数

如何自定义动作模式的颜色和文字?

默认操作模式(3.0及更高版本)左侧带有绿色主题和"完成"按钮.我该如何定制这些?

谢谢

android android-3.0-honeycomb android-actionbar android-actionmode

23
推荐指数
4
解决办法
3万
查看次数

删除ActionMode的"完成"按钮

0我在我的应用程序上使用startActionMode(ActionMode).

默认情况下,它会在栏上添加"完成"按钮,我想将其删除.

此外,如果有办法改变它的文本,我也想知道,导致与"完成"不同的描述可以使动作与它的行为相对应.

android android-actionbar android-actionmode

21
推荐指数
2
解决办法
9945
查看次数

如何在Android中更改ActionMode背景颜色

我正在创建一个Android应用程序,其中支持级别api是7所以我使用sherlock actionbar.我正在使用动作模式.问题是我想改变动作模式的背景.所以我试过了

    <item name="android:background">@color/something</item>
    <item name="android:backgroundStacked">@color/something</item>
    <item name="android:backgroundSplit">@color/something</item>
Run Code Online (Sandbox Code Playgroud)

这些风格的解决方案可用,但它们都不起作用. http://i43.tinypic.com/2nriic1.png

android actionbarsherlock android-actionbar actionmode android-actionmode

16
推荐指数
3
解决办法
3万
查看次数

无法解析资源@style/Widget.Holo.Light.ActionMode.Inverse

我正在Android Studio中创建一个Android应用.当我打开布局编辑器时,我看到布局顶部的灰色"弹出窗口",它表示它

无法解析资源@style/Widget.Holo.Light.ActionMode.Inverse.

当我将"渲染版本"更改为API 15(Android 4.0.3)时会发生这种情况.
它在一分钟前工作,但当我切换回布局时,我才得到这个错误.

编辑:我使用的是AppCompat库.
主题定义如下

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar" />
Run Code Online (Sandbox Code Playgroud)

该应用程序在我运行时工作正常,但在编辑器中无法正确呈现(至少它给出了错误).

如果有人能帮助我,我会很高兴的.谢谢!

android rendering android-appcompat android-resources android-actionmode

11
推荐指数
2
解决办法
2万
查看次数