标签: android-actionbar-compat

Android ActionBar(ActionBarCompat)Spinner下拉列表?

我目前正在为ActionBar(ActionBarCompat)工作,我需要一些关于actionbar的澄清.

我正在使用像这样的微调器布局,

<Spinner 
        android:id="@+id/SpinnerList"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)

我的代码,

public class MainActivity extends ActionBarActivity implements  OnItemSelectedListener{
    private boolean mAlternateTitle = false;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        ActionBar bar = getActionBar();
        bar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

        Spinner spinner = (Spinner) findViewById(R.id.SpinnerList);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.locations, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        spinner.setOnItemSelectedListener(this);
}
}
Run Code Online (Sandbox Code Playgroud)

它在我的android galaxy ace中显示正常的微调器.我需要输出如下所示,是那个位置android 2.3.请给出建议.

在此输入图像描述

谢谢.

android android-actionbar android-actionbar-compat

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

在片段活动中隐藏操作栏

我正在为应用程序创建框架,并希望隐藏登录活动的操作栏.该应用程序将完全由片段组成,因为它们非常棒.

我可以隐藏操作栏以适应我的活动,但每次运行应用程序时,我都会看到我膨胀的空白片段和默认操作栏大约2秒钟,然后才能设置为登录片段充气.

关于我应该如何/在哪里隐藏动作栏,(同时保持我的框架)阻止这种情况发生的任何想法?

LoginActivity.java

public class LoginActivity extends SingleFragmentActivity {
@Override
protected Fragment createFragment() {
    return new LoginFragment();
}
Run Code Online (Sandbox Code Playgroud)

}

SingleFragmentActivity.java

public abstract class SingleFragmentActivity extends ActionBarActivity {
protected abstract Fragment createFragment();

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if(this instanceof LoginActivity){
        ActionBar actionBar = getSupportActionBar();
        actionBar.hide();
    }
    setContentView(R.layout.activity_fragment);

    FragmentManager fm = getSupportFragmentManager();
    Fragment fragment = fm.findFragmentById(R.id.fragmentContainer);

    if (fragment == null) {
        fragment = createFragment();
        fm.beginTransaction()
                .add(R.id.fragmentContainer, fragment)
                .commit();
    }
}
Run Code Online (Sandbox Code Playgroud)

}

LoginFragment.java

public class LoginFragment extends Fragment {
@Override …
Run Code Online (Sandbox Code Playgroud)

android android-fragmentactivity android-actionbar-compat android-actionbaractivity

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

Android ActionBar在setDisplayHomeAsUpEnabled(true)后不显示应用程序图标

我想在ActionBar中启用导航功能,并在http://developer.android.com/guide/topics/ui/actionbar.html上关注此文档.

但是当我检查我的应用程序(在Android 4.0上)时,应用程序图标没有显示,而只显示左侧插入符号.

我检查了android清单文件,java文件和布局文件,但仍然不知道如何让它工作....

这是AndroidManifest.xml:

...
<activity
        android:name="com.test.HelpActivity"
        android:label="@string/help"
        android:parentActivityName="com.test.HomeActivity"
        android:theme="@style/Theme.AppCompat.Light.DarkActionBar"
        android:screenOrientation="portrait" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.test.HomeActivity" />
</activity>
...
Run Code Online (Sandbox Code Playgroud)

这是Java代码:

...
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;

public class HelpActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_help);

        ActionBar actionBar = getSupportActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)

}

谢谢你的帮助!

=====更新=====

我做了一些测试,这是我得到的:

在Android模拟器(2.3)上,它完美无缺.

在Android模拟器(4.1.2)上,它完美无缺.

在Android模拟器(4.0)上,它看起来很好,但是当我单击主页/向上按钮时,没有任何反应并且logcat显示:清单中的bad ParentActivityName'HomeActivity'

在我的手机(4.0.3)上,只显示左侧插入符号,但导航工作正常.

在Android模拟器(4.3)上,它工作正常,但可聚焦区域成为应用程序图标+应用程序标题.(那是当我按下这个长区域内的任何地方时,它会突出显示并触发导航事件)

我现在完全失去了......猜猜它可能是某些Android版本中的一些错误.

android android-actionbar-compat

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

更新到Android棒棒糖后的ActionBar样式

我昨天通过选择API19开发自定义ActionBar我更新了支持库和项目到API21,导致我遇到问题.在我的操作栏中有一个菜单到箭头按钮,我不需要和动作栏样式的更改.

更新前: 在此输入图像描述

更新后: 在此输入图像描述

以下是style.xml

<resources>
    <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">

    </style>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <item name="android:buttonStyle">@style/ButtonAppTheme</item>

        <item name="actionBarItemBackground">@drawable/selectable_background_apptheme</item>
        <item name="popupMenuStyle">@style/PopupMenu.Apptheme</item>
        <item name="dropDownListViewStyle">@style/DropDownListView.Apptheme</item>
        <item name="actionBarTabStyle">@style/ActionBarTabStyle.Apptheme</item>
        <item name="actionDropDownStyle">@style/DropDownNav.Apptheme</item>
        <item name="actionBarStyle">@style/ActionBar.Solid.Apptheme</item>
        <item name="actionModeBackground">@drawable/cab_background_top_apptheme</item>
        <item name="actionModeSplitBackground">@drawable/cab_background_bottom_apptheme</item>
        <item name="actionModeCloseButtonStyle">@style/ActionButton.CloseMode.Apptheme</item>

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

    </style>

    <!-- Base application theme for Full screen Activities -->
    <style name="AppThemeFullScreen" parent="@android:style/Theme.Light.NoTitleBar.Fullscreen">
        <item name="android:buttonStyle">@style/ButtonAppTheme</item>
    </style>

    <!-- Button Style -->
    <style name="ButtonAppTheme" parent="android:Widget.Button">
        <item name="android:background">@drawable/btn_background</item>
        <item name="android:minHeight">48dip</item>
        <item name="android:minWidth">64dip</item>
        <item name="android:textColor">@color/btn_text_color_default</item>

    </style>


    <style name="ActionBar.Solid.Apptheme" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
        <item name="background">@drawable/ab_solid_apptheme</item> …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar-compat android-actionbaractivity android-5.0-lollipop

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

Android ActionBar自定义操作视图工具提示

我有一个使用SupportActionBar的应用程序.我是一个行动的自定义视图.

问题是,当我长按时,默认操作会显示工具提示,但我的自定义操作不会.

所以这是默认操作(如您所见,有一个工具提示): 带有工具提示的操作项

这是我的自定义操作(没有这个工具提示:/): 在此输入图像描述

这些2的xml:

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

        <item
            android:visible="false"
            android:title="Clear history"
            android:id="@+id/action_clear_history"
            custom:showAsAction="always"
            android:icon="@drawable/ic_action_trash" />
        <item
            android:title="Open chat"
            android:id="@+id/action_chat"
            custom:showAsAction="always"
            custom:actionLayout="@layout/ab_chat" />
    </menu>
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

android actionview android-actionbar android-actionbar-compat

6
推荐指数
2
解决办法
2560
查看次数

Android:使用工具栏在AppCompat-v7上设置样式ActionMode

我已经使用可选项创建了一个ListView,但ActionMode没有正确显示.(右边有一个"比较"菜单按钮,白色)

在此输入图像描述

我尝试使用以下代码为actionMode设置样式,但没有任何更改.任何想法可能会发生这种情况?我发现如果我直接在工具栏小部件而不是DarkTheme.ActionBar上设置背景颜色,则actionMode上文本的颜色已经消失,但文本的颜色仍然是白色,我还需要使用ActionBar的颜色在主题上定义而不是小部件.

toolbar.xml

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/action_bar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    app:theme="@style/DarkTheme.ActionBar"
    app:popupTheme="@style/DarkTheme.Popup"/>
Run Code Online (Sandbox Code Playgroud)

mytheme.xml

<resources>

<style name="DarkTheme.ActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:textColorPrimary">@color/abc_primary_text_material_dark</item>
    <item name="actionMenuTextColor">@color/abc_primary_text_material_dark</item>
    <item name="android:textColorSecondary">#ffff8800</item>
    <item name="android:textAllCaps">false</item>
    <item name="android:background">#303030</item>
</style>

<style name="DarkTheme.Popup" parent="ThemeOverlay.AppCompat.Dark">
    <item name="android:textColor">#ffffff</item>
</style>

<style name="DarkTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:textColor">#101010</item>
    <item name="android:textColorLink">#ff0099cc</item>
    <item name="windowActionModeOverlay">true</item>
    <item name="android:colorPrimaryDark">#000000</item>
    <item name="android:navigationBarColor">#000000</item>
    <item name="android:textAllCaps">false</item>
    <item name="android:actionModeStyle">@style/DarkTheme.ActionMode</item>
</style>

<style name="DarkTheme.ActionMode" parent="Widget.AppCompat.ActionMode">
    <item name="android:actionModeBackground">@android:color/black</item>
    <item name="android:background">#000000</item>
    <item name="android:backgroundSplit">#000000</item>
</style>

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

android android-appcompat android-actionmode android-actionbar-compat android-toolbar

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

操作栏中的主页/抽屉按钮无法通过键盘/控制器聚焦

我正在我的应用程序中实现一些控制器/键盘导航以实现可访问性,但我似乎无法让我的抽屉按钮获得键盘焦点。

设置 actionBarDrawerToggle(在 onCreate 中):

this.drawerLayout = (DrawerLayout) this.findViewById(R.id.drawer_layout);
this.drawerLayout.setScrimColor(0x99000000);
this.actionBarDrawerToggle = new ActionBarDrawerToggle(this, this.drawerLayout, R.string.Root_Drawer, R.string.Root_Drawer);
this.actionBarDrawerToggle.setHomeAsUpIndicator(R.drawable.ic_utilitybar_menu);
this.actionBarDrawerToggle.setDrawerIndicatorEnabled(true);
this.drawerLayout.setDrawerListener(this.actionBarDrawerToggle);
Run Code Online (Sandbox Code Playgroud)

设置操作栏(也在 onCreate 中):

ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor(ACTIONBAR_BACKGROUND_COLOR)));
actionBar.setElevation(0);
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
Run Code Online (Sandbox Code Playgroud)

操作栏上的其他按钮是可聚焦的,但我无法从这些按钮的最左侧向左(dpad 向左或键盘向左箭头)移动到主页按钮本身。对于这些按钮,我需要将它们标记为可聚焦以便让键盘导航到它们,例如(来自 onCreateOptionsMenu):

MenuItem alertItem = menu.add(0, R.id.menu_alert, 0, null);
alertItem.setActionView(this.alertIconActionView);
alertItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
this.alertIconActionView.setFocusable(true);
this.alertIconActionView.setFocusableInTouchMode(true);
Run Code Online (Sandbox Code Playgroud)

但是似乎没有我可以获得的主页按钮视图,可以让我将其设置为可聚焦元素。

android android-support-library android-actionbar-compat

6
推荐指数
0
解决办法
477
查看次数

无法更改ActionBar标题文本颜色

我一直试图找到解决方案,但没有一个对我有用.活动主题:

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/white</item>
    <item name="actionBarTheme">@style/MyActionBar</item>

</style>

<style name="MyActionBar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
<item name="android:background">@color/colorPrimaryDesignV4</item>
    <item name="android:windowActionModeOverlay">true</item>
    <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
    <item name="colorControlNormal">@color/white</item>
    <item name="android:titleTextStyle">@style/TitleText</item>
</style>

<style name="TitleText" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">#DE0F17</item>
    <item name="android:textSize">20sp</item>
</style>
Run Code Online (Sandbox Code Playgroud)

MyActionBar中的所有属性都可以正常工作但最后一个属性.无论如何,标题颜色和大小都不受影响.

我怎么能改变它?

android android-actionbar android-styles android-actionbar-compat

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

适用于Android 2.3的ActionBarCompat中没有FEATURE_INDETERMINATE_PROGRESS-

我正在使用

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setSupportProgressBarIndeterminateVisibility(true);
setSupportProgressBarIndeterminateVisibility(false);
Run Code Online (Sandbox Code Playgroud)

启用/禁用不确定的进度条.使用ActionBarSherlock,它适用于所有设备,但在与ActionBarCompat一起使用时,它仅适用于2.3以上的Android版本.

我想过使用WindowCompat而不是Window,但是WindowCompat没有使用FEATURE_INDETERMINATE_PROGRESS标志.

android android-progressbar android-actionbar-compat

5
推荐指数
1
解决办法
2822
查看次数

搜索项目扩展时,操作栏紧凑高度会发生变化

我有list fragmentBaseActivity和希望实现搜索功能.但action bar compact点击搜索项目按钮时高度会发生变化

见下面的截图

在此输入图像描述

menu.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="com.android.bypeople.uber.BaseActivity" >

<item
    android:id="@+id/action_add"
    android:icon="@drawable/btn_profile_selector"
    android:orderInCategory="100"
    android:title="@string/action_add"
    android:visible="false"
    app:showAsAction="always"/>
<item
    android:id="@+id/action_search"
    android:icon="@android:drawable/ic_menu_search"
    android:title="@string/action_search"
    android:visible="false"
    app:actionViewClass="android.support.v7.widget.SearchView"
    app:showAsAction="ifRoom"/>
Run Code Online (Sandbox Code Playgroud)

片段中的onCreateOptionsMenu

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu,inflater);
    inflater.inflate(R.menu.base, menu);
    menu.findItem(R.id.action_add).setVisible(true);

    SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE);
    MenuItem searchItem = menu.findItem(R.id.action_search);
    searchItem.setVisible(true);
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getActivity().getComponentName()));

    searchView.setOnQueryTextListener(queryListener);

    queryListener = new OnQueryTextListener() {       

        @Override
        public boolean onQueryTextChange(String newText) {
            return false;
        }

        @Override
        public boolean …
Run Code Online (Sandbox Code Playgroud)

android searchview android-actionbar-compat

5
推荐指数
1
解决办法
989
查看次数