标签: android-actionbar-compat

使用appcompat-v7在Actionmode中自定义"后退"箭头颜色

我的主题基于Theme.AppCompat.Light如下:

<style name="core" parent="Theme.AppCompat.Light" >
    <!-- Material, Yo!-->
    <item name="colorPrimary">@color/theme_main_color</item>
    <item name="colorPrimaryDark">@color/deep_purple</item>
    <item name="colorAccent">@color/theme_accent_color</item>
    <item name="android:navigationBarColor" tools:ignore="NewApi">?attr/colorPrimary</item>
    <!-- Toolbar -->
    <item name="theme">@style/my_toolbar_theme</item>
    <item name="drawerArrowStyle">@style/my_drawer_arrow</item>
    <!-- Actionbar -->
    <item name="android:actionBarDivider">@null</item>
    <item name="android:actionBarTabStyle">@null</item>
    <item name="android:actionBarTabBarStyle">@null</item>
    <!-- Contextual Actionbar -->
    <item name="windowActionModeOverlay">true</item>
    <item name="actionModeBackground">?attr/colorAccent</item>
    <item name="actionModeStyle">@style/my_actionmode_style</item>
</style>

<style name="my_drawer_arrow" parent="Widget.AppCompat.DrawerArrowToggle" >
    <item name="spinBars">true</item>
    <item name="color">@color/theme_accent_color</item>
</style>

<style name="my_toolbar_style">
    <item name="android:id">@id/toolbar</item>
    <item name="android:minHeight">?attr/actionBarSize</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_width">match_parent</item>
    <item name="android:background">?attr/colorPrimary</item>
    <item name="android:elevation" tools:ignore="NewApi">5dp</item>
</style>

<style name="my_actionmode_style" parent="Widget.AppCompat.Light.ActionMode.Inverse" >
    <item name="titleTextStyle">@style/my_actionmode_title_style</item>
    <item name="subtitleTextStyle">@style/my_actionmode_subtitle_style</item>
</style> …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar-compat

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

在操作栏列表菜单中使用自定义适配器时使用Nullpointer(使用compat-v7)

当使用最新版本的兼容性lib(即compat-lib的v18,与4.3 Android版本一起发布)并使用操作栏中的列表导航菜单模式时,我将遇到Nullpointer异常.该错误发生在2.3.3版本的android中.我相信这是因为在这个版本(以及其他版本)中,使用的整个操作栏代码是compat-lib代码.

当我点击列表菜单(在操作栏上)时,我的应用程序崩溃,我在logcat收到以下错误:

07-30 18:17:59.296: E/AndroidRuntime(14701): FATAL EXCEPTION: main
07-30 18:17:59.296: E/AndroidRuntime(14701): java.lang.NullPointerException
07-30 18:17:59.296: E/AndroidRuntime(14701):    at android.support.v7.internal.widget.ListPopupWindow$DropDownListView.measureHeightOfChildrenCompat(ListPopupWindow.java:1317)
07-30 18:17:59.296: E/AndroidRuntime(14701):    at android.support.v7.internal.widget.ListPopupWindow.buildDropDown(ListPopupWindow.java:1062)
07-30 18:17:59.296: E/AndroidRuntime(14701):    at android.support.v7.internal.widget.ListPopupWindow.show(ListPopupWindow.java:514)
07-30 18:17:59.296: E/AndroidRuntime(14701):    at android.support.v7.internal.widget.SpinnerICS$DropdownPopup.show(SpinnerICS.java:758)
07-30 18:17:59.296: E/AndroidRuntime(14701):    at android.support.v7.internal.widget.SpinnerICS.performClick(SpinnerICS.java:443)
07-30 18:17:59.296: E/AndroidRuntime(14701):    at android.view.View$PerformClick.run(View.java:9109)
07-30 18:17:59.296: E/AndroidRuntime(14701):    at android.os.Handler.handleCallback(Handler.java:587)
07-30 18:17:59.296: E/AndroidRuntime(14701):    at android.os.Handler.dispatchMessage(Handler.java:92)
07-30 18:17:59.296: E/AndroidRuntime(14701):    at android.os.Looper.loop(Looper.java:130)
07-30 18:17:59.296: E/AndroidRuntime(14701):    at android.app.ActivityThread.main(ActivityThread.java:3683)
07-30 18:17:59.296: E/AndroidRuntime(14701):    at java.lang.reflect.Method.invokeNative(Native Method)
07-30 18:17:59.296: E/AndroidRuntime(14701):    at java.lang.reflect.Method.invoke(Method.java:507)
07-30 18:17:59.296: E/AndroidRuntime(14701):    at …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar android-support-library android-actionbar-compat

10
推荐指数
1
解决办法
2589
查看次数

尝试使用android v7 appcompat库时出现奇怪错误

我刚刚在我的项目中包含了android v7-appcompat库.我已经成功地将jar添加到构建路径中,现在我正在使用Theme.AppCompat主题.现在,我得到了这个奇怪的错误:

[Dex Loader]无法执行dex:多个dex文件定义了Landroid/support/v7/app/ActionBar $ Callback; [2013-10-09 11:11:50 - DelTest2]转换为Dalvik格式失败:无法执行dex:多个dex文件定义Landroid/support/v7/app/ActionBar $ Callback;

编辑

我的项目现在包含三个文件夹,每个文件夹包含android v7 appcompat:

+Android Private Libraries
+Android Dependencies
+Referenced Libraries
Run Code Online (Sandbox Code Playgroud)

为了使我的项目有效,我必须删除这些库中的哪一个?

android android-actionbar-compat

10
推荐指数
2
解决办法
9297
查看次数

如何以编程方式设置操作栏的高度

我正在android操作栏中实现自定义视图.问题是在某些情况下我需要将操作栏的高度加倍以允许视图完全显示.我可以使用自定义主题设置高度,但此高度是静态的.

是否可以以编程方式更改操作栏高度?

提前致谢

android android-actionbar android-actionbar-compat

10
推荐指数
1
解决办法
7625
查看次数

在MenuItem上显示进度条,即使它处于分割操作栏模式

我正在检查如何将菜单项的图标更改为进度条加载动画.我试过了

<item android:id="@+id/action_favorite"
    android:icon="@drawable/ic_action_heart"
    clasificados:showAsAction="always|collapseActionView"
    clasificados:actionViewClass="android.widget.ProgressBar"/>
Run Code Online (Sandbox Code Playgroud)

我正在使用分割操作栏模式.当我点击它时,图标消失,进度条显示在顶部栏上.

我需要改变什么?

android android-progressbar android-menu android-actionbar android-actionbar-compat

10
推荐指数
1
解决办法
4851
查看次数

appcompat v21抛出java.lang.UnsupportedOperationException

更新我的项目以使用appcompat库到版本21.0.0后,我遇到了使用gridview multichoice模态事件创建的上下文菜单的问题.相同的代码适用于appcompat v20.

这是主要活动的相关部分:

public class MainActivity extends android.support.v7.app.ActionBarActivity 
    implements AbsListView.MultiChoiceModeListener {

    ...
    mGridView.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE_MODAL);
    mGridView.setMultiChoiceModeListener(this);

    @Override
    public boolean onCreateActionMode(final ActionMode mode, final Menu menu) {
        mode.setTitle("Started");
        mode.getMenuInflater().inflate(R.menu.context_menu, menu);
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是context_menu.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/menu_item_share"
        android:title="Share..."
        app:showAsAction="ifRoom"
        android:icon="@android:drawable/ic_menu_share"
        app:actionProviderClass="android.support.v7.widget.ShareActionProvider" />
</menu>
Run Code Online (Sandbox Code Playgroud)

这就是我要回的堆栈跟踪:

java.lang.UnsupportedOperationException: This is not supported, use MenuItemCompat.setActionProvider()
        at android.support.v7.internal.view.menu.MenuItemImpl.setActionProvider(MenuItemImpl.java:628)
        at android.support.v7.internal.view.menu.MenuItemWrapperICS.setSupportActionProvider(MenuItemWrapperICS.java:315)
        at android.support.v4.view.MenuItemCompat.setActionProvider(MenuItemCompat.java:345)
        at android.support.v7.internal.view.SupportMenuInflater$MenuState.setItem(SupportMenuInflater.java:473)
        at android.support.v7.internal.view.SupportMenuInflater$MenuState.addSubMenuItem(SupportMenuInflater.java:485)
        at android.support.v7.internal.view.SupportMenuInflater.parseMenu(SupportMenuInflater.java:194)
        at android.support.v7.internal.view.SupportMenuInflater.inflate(SupportMenuInflater.java:118)
        at creativesdk.adobe.com.myapplication.MainActivity.onCreateActionMode(MainActivity.java:71)
        at android.widget.AbsListView$MultiChoiceModeWrapper.onCreateActionMode(AbsListView.java:6165)
        at android.support.v7.internal.view.SupportActionModeWrapper$CallbackWrapper.onCreateActionMode(SupportActionModeWrapper.java:151)
        at android.support.v7.app.ActionBarActivityDelegateBase$ActionModeCallbackWrapper.onCreateActionMode(ActionBarActivityDelegateBase.java:1367)
        at android.support.v7.internal.app.WindowDecorActionBar$ActionModeImpl.dispatchOnCreate(WindowDecorActionBar.java:1012)
        at android.support.v7.internal.app.WindowDecorActionBar.startActionMode(WindowDecorActionBar.java:510)
        at android.support.v7.app.ActionBarActivityDelegateBase.startSupportActionMode(ActionBarActivityDelegateBase.java:576) …
Run Code Online (Sandbox Code Playgroud)

android android-support-library contextual-action-bar android-actionbar-compat

10
推荐指数
1
解决办法
3635
查看次数

Android:AppCompat 21,如何将后退图标和溢出图标更改为自定义图标?

我的项目,直到前几天我用大侦探动作条,但我决定要在整个动作条样式更改为新材料的设计.在我的旧主题背面和溢出图标我有一些自定义图标设置在我的主题.但是在appcompat上我尝试在我的主题上定义它,我在工具栏上使用它,但它不起作用.谁知道如何使这成为可能?

我在工具栏上使用的主题(使用资产工作室生成):

<style name="Theme.Themewiz" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/ActionBar.Solid.Themewiz</item>

    <item name="android:actionBarItemBackground">@drawable/selectable_background_themewiz</item>
    <item name="android:popupMenuStyle">@style/PopupMenu.Themewiz</item>
    <item name="android:dropDownListViewStyle">@style/DropDownListView.Themewiz</item>
    <item name="android:actionBarTabStyle">@style/ActionBarTabStyle.Themewiz</item>
    <item name="android:actionDropDownStyle">@style/DropDownNav.Themewiz</item>
    <item name="android:actionModeBackground">@drawable/cab_background_top_themewiz</item>
    <item name="android:actionModeSplitBackground">@drawable/cab_background_bottom_themewiz</item>
    <item name="android:actionModeCloseButtonStyle">@style/ActionButton.CloseMode.Themewiz</item>

            <!-- Light.DarkActionBar specific -->
    <item name="android:actionBarWidgetTheme">@style/Theme.Themewiz.Widget</item>

    <item name="android:actionOverflowButtonStyle">@style/Theme.AppCompat.Overflow</item>

</style>

<style parent="@style/Widget.AppCompat.ActionButton.Overflow" name="Theme.AppCompat.Overflow">

    <item name="android:src">@drawable/ic_action_overflow</item>

</style>
Run Code Online (Sandbox Code Playgroud)

工具栏xml:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/my_awesome_toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimaryDark"
    app:theme="@style/Theme.Themewiz"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
Run Code Online (Sandbox Code Playgroud)

android android-actionbar-compat

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

从提示文本中删除"搜索视图"图标

我正在使用appcompat库和工具栏,我在我的应用程序中实现了一个搜索视图.但我希望在展开时删除搜索视图图标.

这是我的菜单xml文件:

<item
    android:id="@+id/action_search"
    android:icon="@drawable/ic_search"
    android:title="@string/action_search"
    app:actionViewClass="android.support.v7.widget.SearchView"
    app:showAsAction="ifRoom|collapseActionView"/>
Run Code Online (Sandbox Code Playgroud)

这就是我给菜单充气的方式:

getMenuInflater().inflate(R.menu.main, menu);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.action_search));
searchView.setQueryHint(getString(R.string.search_hint));
return super.onCreateOptionsMenu(menu);
Run Code Online (Sandbox Code Playgroud)

这就是我要删除的内容:

在此输入图像描述

android android-appcompat android-actionbar searchview android-actionbar-compat

10
推荐指数
6
解决办法
1万
查看次数

用微调器替换操作栏的标题(下拉)

我试图在操作栏的默认标题出现的同一位置显示一个微调器.我按照类似SO案例的说明进行操作,所以我设法消除了标题,但旋转器的位置仍然没有与左边对齐,正如你从这个屏幕截图中看到的那样

apinner没有对齐左边

以下是我重现此案例的应用程序的主要定义:

AndroidMenifest.xml:

<application
        android:label="app"            
        android:icon="@drawable/ic_launcher"
        android:theme="@style/Theme.AppCompat" > 
...
    <activity
        android:name="gm.activities.ViewAllActivity">            
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="gm.activities.MainActivity" />
    </activity>
Run Code Online (Sandbox Code Playgroud)

menu_view_all.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="gm.activities.ViewAllActivity">
    <item android:id="@+id/spinner"
        android:title="will be replaced anyway"
        app:showAsAction="ifRoom"
        app:actionViewClass="android.widget.Spinner"
        android:layout_gravity="left"
        android:gravity="left"/>
    <item android:id="@+id/action_settings" android:title="@string/action_settings"
        android:orderInCategory="100" app:showAsAction="never" />
</menu>
Run Code Online (Sandbox Code Playgroud)

以及相关活动:

public class ViewAllActivity extends ActionBarActivity {

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.view_all_activity);
        getSupportActionBar().setDisplayShowTitleEnabled(false);
...
@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_view_all, …
Run Code Online (Sandbox Code Playgroud)

android alignment android-ui android-actionbar android-actionbar-compat

10
推荐指数
1
解决办法
4491
查看次数

实施行动栏:ABSherlock还是ABCompat?

该应用程序目前有表格和酒吧定制(由以前的家伙)从碎片到复制猫苹果设计.

我想转向Android操作栏以提供Android体验和常规行为.

我应该实施Action Bar Sherlock还是Action Bar Compat?

专业ABS:

  • 很多文档
  • 操作栏选项卡众所周知(这就是我需要做的)
  • 关于Holo主题?ABS非常适合支持它,如何执行ABCompat?

Pro ABCompat:

  • 谷歌支持(从长远来看更好?)
  • 更好地连接导航抽屉(但我不会使用一个)
  • Java Build路径中没有外部依赖项

其他论据有何决定?我应该选哪一个?

从我的角度来看,如果我成功地使用固定标签执行操作栏,则操作栏兼容性是最佳选择(但不是很多).

感谢你们对我的帮助!(甚至提供我错过的论据)

android actionbarsherlock android-actionbar android-actionbar-compat

9
推荐指数
2
解决办法
534
查看次数