标签: android-actionbar-compat

带有Theme.AppCompat.Light.DarkActionBar的ActionBarCompat显示白色标题文本但黑色微调文本

我正在使用ActionBarCompat和两个Title文本,后跟ActionBar中的微调器.我正在使用主题Theme.AppCompat.Light.DarkActionBar,它应该在黑色背景上显示白色文本.标题文本显示为白色,但微调文本显示为黑色.将主题切换为Theme.AppCompat.Light在白色上都有黑色文本.任何人都可以建议我如何将白色文本输入微调器?我已经看到ActionBar和ActionBarSherlock的建议,但无法让它们在ActionBarCompat上工作.我按照以下方式尝试了样式而没有成功:

    <style name="SBRRTheme" parent="AppTheme">
    <item name="android:spinnerDropDownItemStyle">@style/SBRRCustomDropDownItemStyle</item>
</style>

<style name="SBRRCustomDropDownItemStyle"> parent="@android:style/Widget.AppCompat.Light.DropDownItem.Spinner">
    <item name="android:textAppearance">@style/SBRRCustomDropDownItemTextStyle</item>
</style>

<style name="SBRRCustomDropDownItemTextStyle"> parent="@android:style/Widget.AppCompat.Spinner.DropDown.ActionBar">
    <item name="android:textColor">@color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)

清单中的活动定义是:

        <activity
        android:theme="@style/Theme.AppCompat.Light.DarkActionBar"
        android:name="com.example.actionbar2.RaceResultsActivity"
        android:label="@string/action_raceresults"
        android:parentActivityName=".MainActivity" >
        <meta-data android:name="android.support.PARENT_ACTIVITY"
            android:value=".MainActivity" />
    </activity>
Run Code Online (Sandbox Code Playgroud)

进一步的信息,在使用Nexus-S仿真器和物理Galaxy S2进行测试后,都运行JellyBean,ActionBarCompat本身的微调器外观问题只出现在我的开发设备上,一个运行2.3.5 Gingerbread的Galaxy Y. 同样显示在2.3.3 AVD上.

android colors spinner android-actionbar-compat

4
推荐指数
1
解决办法
9791
查看次数

调用MenuItem.collapseActionView时出现NoSuchMethodError

使用android支持库我实现了ActionBar(android.support.v7.app.ActionBar).同时我试图与SearchView交互并尝试 使用以下方法折叠SearchItem:

 searchItem.collapseActionView();
Run Code Online (Sandbox Code Playgroud)

seachItem的类型为MenuItem.这导致以下异常:

java.lang.NoSuchMethodError: android.view.MenuItem.collapseActionView
Run Code Online (Sandbox Code Playgroud)

那么我应该如何解开SearchItem呢?

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

4
推荐指数
1
解决办法
1882
查看次数

Android ShareActionProvider在调试模式下工作,但不在实际设备中

当我在设备上使用Eclipse调试我的应用程序时,这就是结果,这就是我想要的:

来自调试模式的App图像

'分享图标'工作正常!

在这里,问题!!!! 当我在谷歌播放时添加应用程序,然后我从它安装应用程序,这是结果:

从Google Play安装后的应用图片

'分享图标'不起作用.它是可点击的,但它什么也没做.图标没有出现,只有标题:"分享"

这是代码:

private ShareActionProvider mShareActionProvider;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu items for use in the action bar
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main, menu);
    // Set up ShareActionProvider's default share intent
    MenuItem shareItem = menu.findItem(R.id.action_share);
    mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(shareItem);
    mShareActionProvider.setShareIntent(getDefaultShareIntent());  
    return super.onCreateOptionsMenu(menu);
}

private Intent getDefaultShareIntent() {
    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("text/plain");
    intent.putExtra(Intent.EXTRA_SUBJECT, getResources().getString(R.string.app_name));
    intent.putExtra(Intent.EXTRA_TEXT, getResources().getString(R.string.app_play_address));
    return intent;
}
Run Code Online (Sandbox Code Playgroud)

这是main.xml文件:

<menu 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:yourapp="http://schemas.android.com/apk/res-auto">

<item 
    android:id="@+id/action_share"
    android:title="@string/share"
    yourapp:showAsAction="ifRoom"
    yourapp:actionProviderClass="android.support.v7.widget.ShareActionProvider" …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar shareactionprovider android-actionbar-compat

4
推荐指数
1
解决办法
1151
查看次数

ActionBarActivity getSupportActionBar().hide()抛出NullPointerException

呼叫

 if (getSupportActionBar() != null)
     getSupportActionBar().hide();
Run Code Online (Sandbox Code Playgroud)

要不就:

getActionBar()
Run Code Online (Sandbox Code Playgroud)

在android.support.v7.app.ActionBarActivity中,我得到了这样的异常:

    ...
    java.lang.NullPointerException
    at android.support.v7.app.ActionBarImplICS.hide(ActionBarImplICS.java:302)
    at android.support.v7.app.ActionBarImplJB.hide(ActionBarImplJB.java:20)
    ...
Run Code Online (Sandbox Code Playgroud)

编辑: 它只是在活动有主题时发生:

<style name="MyTheme" parent="Theme.AppCompat.Light">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">false</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

注意:

getSupportActionBar()
Run Code Online (Sandbox Code Playgroud)

不要返回null

java android nullpointerexception android-support-library android-actionbar-compat

4
推荐指数
2
解决办法
9893
查看次数

使用Latest SupportVersion在MenuInflater Android中获取null

我正在尝试在操作栏中创建一个像视图一样的徽章.(使用最新的支持库).

我正在尝试以下方式.但它说空指针异常.

    public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.activity_dashboard_menu, menu);

    MenuItem textBadge = menu.findItem(R.id.badge);
    RelativeLayout badgeLayout = (RelativeLayout) MenuItemCompat.getActionView(textBadge);
    TextView tv = (TextView) badgeLayout.findViewById(R.id.actionbar_notifcation_textview);
    tv.setText("12");

    return super.onCreateOptionsMenu(menu);

}
Run Code Online (Sandbox Code Playgroud)

Menu.xml是

    <item
    android:id="@+id/badge"
    android:actionLayout="@layout/actionbar_badge_layout"
    android:icon="@drawable/btn_star_off_disabled_holo_light"
    android:showAsAction="always|withText">
</item> 
Run Code Online (Sandbox Code Playgroud)

而Layout.xml是

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="48dp"
android:layout_height="fill_parent"
android:layout_gravity="right" >

<!-- Menu Item Image -->
<ImageView
    android:layout_width="48dp"
    android:layout_height="fill_parent"
    android:clickable="true"
    android:src="@drawable/btn_star_off_disabled_holo_light" />

<!-- Badge Count -->    
<TextView
    android:id="@+id/actionbar_notifcation_textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:padding="5dp"
    android:text="99"
    android:textColor="#ffffff" />

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

这是我的日志:

01-22 09:12:45.439: E/AndroidRuntime(4819): FATAL EXCEPTION: main
01-22 09:12:45.439: E/AndroidRuntime(4819): …
Run Code Online (Sandbox Code Playgroud)

android actionbarsherlock android-actionbar android-actionbar-compat

4
推荐指数
1
解决办法
1513
查看次数

如何在Android 4.3 api 18上更改ActionBar标题文本的颜色

我正在使用appcompat v7库来支持api级别8及以上的操作栏.我正在尝试更改操作栏标题文本的颜色.

GingerBread中标题文本的颜色正在改变,但是当我使用JellyBean在手机上运行应用程序时,颜色不会改变.

在GingerBread标题颜色变为红色:

在此输入图像描述

在JellyBean上它仍然是黑色的:

在此输入图像描述

这是我的styles.xml:

styles.xml:

<resources>

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
        <item name="actionBarStyle">@style/ActionBarStyle</item>
    </style>

    <style name="ActionBarStyle" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
        <item name="titleTextStyle">@style/TitleBarTextColor</item>
    </style>

    <style name="TitleBarTextColor" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="android:textColor">@color/red</item>
    </style>
    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    </style>

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

styles.xml for v-11:

<resources>

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
        <item name="actionBarStyle">@style/ActionBarStyle</item>
    </style>

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

style.xml for v-14:

<resources>

    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
        <item name="actionBarStyle">@style/ActionBarStyle</item>
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

Mainfest:

android:theme="@style/AppTheme" 
Run Code Online (Sandbox Code Playgroud)

android android-actionbar-compat

4
推荐指数
1
解决办法
6892
查看次数

从ActionBar中的searchview中删除图标

我正在使用动作栏支持v7库.当我展开搜索视图时,我看起来像这样.

在此输入图像描述

我不想在左边看这个搜索图标.相反,我想把它放在下面的图像提示中.

在此输入图像描述

我想以编程方式执行此操作.我怎样才能做到这一点?

谢谢.

android android-actionbar android-actionbar-compat

4
推荐指数
1
解决办法
3807
查看次数

Android扩展的SearchView使其他ActionBar项目消失

我在Fragment调用的Contextual Action Bar中面临一些SearchView的问题.主要的一点是,当我的SearchView被展开时,它会消除操作栏中的所有其他项目(除了关闭按钮),即使有一些未使用的空间,就像你在这个截图中看到的那样:

截图

此外,我也遇到了与此问题中讨论的完全相同的问题: ActionBar总是使用里面的图标扩展SearchView

这是我的SearchView的XML代码:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

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

这是我的Fragment的JAVA代码,它实现了ActionMode.Callback

@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
    mode.getMenuInflater().inflate(R.menu.menu_series_cab, menu);
    mSearchView = (SearchView) MenuItemCompat
            .getActionView(menu.findItem(R.id.menu_series_cab_search));
    mSearchView.setQueryHint(getResources().getString(R.string.action_search));
    mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String s) {
            mSearchView.clearFocus();
            return true;
        }

        @Override
        public boolean onQueryTextChange(String s) {
            return false;
        }
    });
    mSearchView.setIconifiedByDefault(false);
    return true;
}

@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
    mSearchView.requestFocus();
    return …
Run Code Online (Sandbox Code Playgroud)

android android-fragments searchview contextual-action-bar android-actionbar-compat

4
推荐指数
1
解决办法
7803
查看次数

SearchView AppCompatActivity中的空指针?

我只是一个初学者,我在这里搜索了这个问题,发现4-5问题但是没有帮助我.我只是在Actionbar中尝试searchView,我的活动是AppCompatActivity我的代码在下面.我在这个活动中使用工具栏.并使用这个.OncreatOptionMenu:

 @Override
public boolean onCreateOptionsMenu(Menu menu) {

    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_main, menu);
    SearchManager SManager =  (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    MenuItem searchMenuItem = menu.findItem(R.id.action_search);
    SearchView searchViewAction = (SearchView) MenuItemCompat.getActionView(searchMenuItem);
    searchViewAction.setSearchableInfo(SManager.getSearchableInfo(getComponentName()));
    searchViewAction.setIconifiedByDefault(false);

    return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)

XML:

<item android:id="@+id/action_search"
    android:title="action_search"
    MainActivity:showAsAction="ifRoom"
    MainActivity:actionViewClass="android.support.v7.widget.SearchView" />
Run Code Online (Sandbox Code Playgroud)

和logcat:

java.lang.NullPointerException
        at algonation.com.spm.MainActivity.onCreateOptionsMenu(MainActivity.java:183)
        at android.app.Activity.onCreatePanelMenu(Activity.java:2571)
        at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:277)
        at android.support.v7.internal.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:84)
        at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallback.onCreatePanelMenu(AppCompatDelegateImplBase.java:251)
        at android.support.v7.internal.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:84)
        at android.support.v7.internal.app.ToolbarActionBar.populateOptionsMenu(ToolbarActionBar.java:449)
        at android.support.v7.internal.app.ToolbarActionBar$1.run(ToolbarActionBar.java:66)
        at android.os.Handler.handleCallback(Handler.java:808)
        at android.os.Handler.dispatchMessage(Handler.java:103)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:5292)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
        at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

如果你需要MainActivity的完整代码,请告诉我..非常感谢你.

android searchview android-actionbar-compat

4
推荐指数
1
解决办法
2907
查看次数

抓取指向操作栏上选项卡的TextView的指针?

其他一些用户和我正在为Stack Exchange聊天网络开发Android应用程序.我们正在为每个活动添加一个教程,向用户解释UI.但是,我们遇到了一些障碍.

教程库需要一个指向视图的指针(无论是a TextView,ImageView等等),以便在显示中获取视图的坐标,以便知道在哪里绘制阴影和内容.

我们有一项活动使用Android Studio中的标准"标签式活动",因此我们不使用任何自定义工具栏.

操作栏如下所示:

在此输入图像描述

我们想要抓住TextView每个标签上的指针,该标签包含标签的标题.

例如,我们希望能够访问Textview:

在此输入图像描述

我们在互联网上找不到关于如何做到这一点的任何事情都没有真正成功.如果您使用自定义工具栏似乎相对容易,但我们不是.

在AOSP源代码中挖掘,我们发现了一种潜在的方法,但是我们需要访问的字段是private主活动代码中的其他字段,也可能是其中无法访问的字段.

所以问题是,我们怎样才能抓住指针TextView呢?它甚至可能吗?

android android-actionbar-compat android-tabbed-activity

4
推荐指数
1
解决办法
96
查看次数