Articles of android actionbar compat

新的Theme.AppCompat ActionBar高度

当使用appcompat库的第21版时, ?android:attr/actionBarSize actionBarSize返回48个dips,好像它是Holo主题而不是Material。 事实上,它有点大 – 56逢低。 有没有人find解决这个问题的方法?

FragmentActivty中的ActionBarCompat

我收到错误“方法getSupportActionBar()未定义typesMainActivity” import android.app.FragmentTransaction; import android.os.Bundle; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBar.Tab; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; public class MainActivity extends FragmentActivity implements ActionBar.TabListener { AppSectionsPagerAdapter mAppSectionsPagerAdapter; ViewPager mViewPager; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mAppSectionsPagerAdapter = new AppSectionsPagerAdapter(getSupportFragmentManager()); final ActionBar actionBar = getSupportActionBar(); //actionBar.setHomeButtonEnabled(false); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); mViewPager = (ViewPager) findViewById(R.id.pager); mViewPager.setAdapter(mAppSectionsPagerAdapter); mViewPager.setOnPageChangeListener(new […]

Android ActionBar高度问题

我在弄清楚ActionBar的高度时遇到了一个奇怪的问题。 我的应用程序中有几个部分,其中的某些内容位于ActionBar正下方,而且我还使用了Chris Banes的库actionbar-pulltorefresh 。 我将使用pull to refresh库中的示例。 我正在遇到与此处问题完全相同的事情,除了我正在完成指南对Fragments所说的一切。 它基本上计算ActionBar的高度大约应该是它应该的一半。 同样在应用程序的不同部分,我将PopupWindow定位在ActionBar下面,因此我调用getHeight()并将该位置用于我的窗口,我得到的问题与pull to refresh库相同。 所以这让我觉得它与ActionBar高度的测量方式有关,而且可能是一个风格问题。 但这里有趣的地方。 如果我将设备旋转到横向模式,它会将高度精确地计算出来并将所有内容放在该点上,即使我旋转回纵向也是如此。 它突然修复,直到我重新启动应用程序并从内存中删除它并重新开始。 有人有类似的事情吗? 注意:我现在正在使用appcompat库,但之前我使用的是ActionBarSherlock,以及某些时候的基本ActionBar,并且所有场景都给出了相同的结果。 更新1:我从这里 , 这里和这里的问题得到了相同的结果。 但是我正在做README所说的所有事情,所以我非常有信心这与我的设备如何测量ActionBar高度有关。 更新2:我在另一个活动中使用了操作栏PullToRefresh库,它工作正常,所以它必须与我的主Activity 。

奇怪的分隔符与v7支持动作栏

使用Theme.AppCompat.Light时,操作Theme.Holo的主题是Theme.AppCompat.Light ,该问题不存在。 我正在使用支持v7操作栏的自定义视图: 我得到以下结果: 如何删除布局和操作栏之间的黑线/分隔线。 我尝试过更改动作栏样式,但没有取得多大成功。 @style/Widget.Styled.ActionBar @null @null 0dp 0dp none @null @null 0dp 0dp 这是我的活动来源: public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayShowTitleEnabled(false); actionBar.setDisplayShowHomeEnabled(false); actionBar.setDisplayShowCustomEnabled(true); actionBar.setCustomView(R.layout.actionbar); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); } } 这是显而易见的:

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

我已经使用可选项创建了ListView,但ActionMode没有正确显示。 (右边有一个“比较”菜单按钮,白色) 我尝试使用以下代码设置actionMode的样式,但没有任何更改。 任何想法可能会发生这种情况? 我发现如果我直接在工具栏小部件而不是DarkTheme.ActionBar上设置背景颜色,则actionMode上文本的颜色仍然消失,但文本的颜色仍然是白色,我还需要使用ActionBar的颜色在主题上定义而不是小部件。 toolbar.xml mytheme.xml @color/abc_primary_text_material_dark @color/abc_primary_text_material_dark #ffff8800 false #303030 #ffffff #101010 #ff0099cc true #000000 #000000 false @style/DarkTheme.ActionMode @android:color/black #000000 #000000

4.0及以上版本的Android support-v7-appcompat问题

我向后移植我的Android应用程序以支持旧设备(2.3.3+)。 以前,它是4.0+。 我正在使用ActionBar并在基类的代码中对其进行自定义样式。 转换为支持ActionBar后,样式代码为: public static void styleActionBar(final ActionBarActivity activity) { /* Setup the actionbar as required */ final ActionBar actionBar = activity.getSupportActionBar(); if (actionBar != null) { actionBar.setBackgroundDrawable(new ColorDrawable(0xfffffff)); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); actionBar.setCustomView(R.layout.customview_actionbar); …. } } 在这一变化之后,所有事情都在2.3.3上完美运行。 但是,对于4.0+,它崩溃了 actionBar.setBackgroundDrawable(new ColorDrawable(0xfffffff)); 另外,如果我评论这一行,我可以看到它在actionBar.setCustomView也崩溃了。 4.2上的堆栈跟踪: …. Caused by: java.lang.NullPointerException at android.support.v7.app.ActionBarImplICS.setBackgroundDrawable(ActionBarImplICS.java:176) at com.mycompany.myproj.ProjBaseActivity.styleActionBar(ProjBaseActivity.java:68) at com.mycompany.myproj.ProjBaseActivity.onCreate(ProjBaseActivity.java:32) at com.mycompany.myproj.TextSearchActivity.onCreate(TextSearchActivity.java:60) at android.app.Activity.performCreate(Activity.java:5008) […]

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

我想在ActionBar中启用导航function,并在http://developer.android.com/guide/topics/ui/actionbar.html上关注此文档。 但是,当我检查我的应用程序(在Android 4.0上)时,应用程序图标不会显示,而只显示左侧插入符号。 我已经检查了android清单文件,java文件和布局文件,但仍然不知道如何让它工作…. 这是AndroidManifest.xml: … … 这是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); } } 谢谢你的帮助! =====更新===== 我做了一些测试,这是我得到的: 在Android模拟器(2.3)上,它完美无缺。 在Android模拟器(4.1.2)上,它完美无缺。 在Android模拟器(4.0)上,它看起来很好,但是当我单击主页/向上按钮时,没有任何反应并且logcat显示:清单中的bad ParentActivityName’HomeActivity’ 在我的手机(4.0.3)上,只显示左侧插入符号,但导航工作正常。 在Android模拟器(4.3)上,它工作正常,但可聚焦区域成为应用程序图标+应用程序标题。 (那是当我按下这个长区域内的任何地方时,它会突出显示并触发导航事件) 我现在完全迷失了……猜猜它可能是某些Android版本中的一些错误。

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

我有一个使用SupportActionBar的应用程序。 我是一个自定义视图的动作。 问题是,当我长按时,默认操作会显示工具提示,但我的自定义操作不会。 所以这是默认操作(如您所见,有一个工具提示): 这是我的自定义操作(没有这个工具提示:/): 这些2的xml: 有人可以帮忙吗?

Android ActionBar compat溢出菜单未显示在sdk 10上

您好,感谢您抽出时间阅读此问题。 我正在尝试开发一个将使用ActionBar compat库的Android应用程序。 在使用compat库时,我遵循了(据我所知)所有建议。 我的清单看起来像这样(只显示相关代码): 如你所见,我的目标是sdk 8+。 我已经按照建议使用了Theme.AppCompat主题。 我的菜单文件如下所示: 我使用自己的命名空间作为showAsAction属性。 我的活动扩展了ActionBarActivity类。 问题是:在设备和模拟器上的sdk 10(android 2.3.3)上,溢出菜单(操作栏右侧的三个点)未显示。 操作栏上仅显示前两个菜单项。 如果我按下设备上的“菜单”按钮,则第三项显示在屏幕的左下角(而不是从右上角显示,因为在具有更新的Android版本的设备上)。 相同的代码在模拟器上的android sdk 17上运行良好(溢出菜单显示正确的操作)。 我在网上搜索了一个解决方案,但我找不到具有此特定问题的解决方案。 如果我没有在Android 2.3.3设备上安装具有相同操作栏并且显示溢出菜单图标并且在任何最近的Android设备上正常工作的应用程序,我会放弃该问题。 这个应用程序的一个例子是todoist应用程序( https://en.todoist.com/android )或移动应用程序( https://play.google.com/store/apps/details?id=com.handcent.nextsms&hl = en )在这个设备上表现都很好。 有什么我缺少的或是否有使用actionbar compat的推荐方法的替代解决方案? 感谢您的时间。

无法从ActionBarActivity覆盖最终方法

我正在从ActionBarSherlock迁移到Google IO 2013中引入的ActionBarCompat库(我这样做,所以我可以使用ActionBarDrawerToggle)。 我已经整理了所有必要的依赖项(AppCompat,最新的支持库……),修复了所有的导入,但是现在当我尝试使用ActionBarActivity的onMenuItemSelected我收到了一个错误。 @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { … } 错误: 无法从ActionBarActivity覆盖最终方法 ActionBarActivity (inheritance自FragmentActivity )的原始方法是最终的。 当我使用ABS时,这是有效的,现在我无法覆盖该方法。 (MenuItem是类android.view.MenuItem而不是compat版本……) 我错过了什么吗?