当前位置: 首页 > 知识库问答 >
问题:

当方向改变时,动作栏scherlock不会刷新

晁砚
2023-03-14

我在应用程序中使用Sherlock操作栏。我在菜单中使用了“ifRoom | with text”功能。如果我在纵向模式下测试代码,我只能看到图标,如果我将方向旋转到横向,我仍然只能看到图标。另一方面,如果我使用横向,我可以在纵向和横向上看到文本和图标。这意味着当屏幕旋转时,操作栏不会刷新。我如何修复?

菜单里,我有

    android:showAsAction="ifRoom|withText"

我还在清单文件中使用这一行来修复

    android:configChanges="keyboardHidden|orientation|screenSize"

但它不起作用。我运行我的代码android 2.3

我还在我的活动中使用了片段,

        FragmentManager fm = getSupportFragmentManager();
    ft = fm.beginTransaction();

    mFragment1 = fm.findFragmentByTag("f1");

    if (mFragment1 == null) {

        mFragment1 = new MenuFragment();
        ft.add(mFragment1, "f1");

    }

    ft.commit();

共有2个答案

洪鹏海
2023-03-14

我认为您必须在配置更改时重新创建ActionBar菜单

invalidateOptionsMenu();
丁恩
2023-03-14

ActionBarSherlock不支持处理配置更改。

在pre-ICS上,ActionBarSherlock不像本机操作栏那样是装饰视图的一部分,因此受到与内容视图相同的限制。通过处理配置更改,您不允许库适应更改,因此会看到不正确的显示或某些部分。

Android文档也不鼓励处理配置更改。不惜一切代价避免它们,尤其是在使用ActionBarSherlock时。

另一方面,我仍在为该库的未来版本解决此问题,但目前建议避免使用。

 类似资料:
  • 我有一个,当用户浏览应用程序时,我将当前片段替换为用户选择的片段,并添加将交易添加到背包。一切正常,用户可以通过按下返回按钮返回到以前的片段。 当设备方向改变时会出现问题:假设用户看到的第一个片段是A,然后他导航到B,并从B导航到C。在横向模式下,可以更好地欣赏C中的内容,并且C有一个特殊的横向布局,因此用户旋转设备。我希望用户使用C语言进行新的定位。相反,用户看到的是景观。现在他需要再次从A导航

  • 所以我正在用Visual Studio编写一个Android应用程序。我想要一个既有纵向又有横向的活动。当我打开我的设备时,我的活动中的数据消失了。所以我在网上查了一下,找到了一行放在清单中的数据,这很有效!Android:config changes = " orientation | keyboard hidden | screen size "除了我所有的视图都是无序的、错位的。我使用了两种

  • 当我改变设备的方向时,我在重新加载带有选项卡和片段的活动时遇到问题。 我有一个活动,其中有3个标签在行动栏。每个选项卡在主视图中的中加载不同的片段。如果我不改变设备的方向,一切都很好。但是当我这样做的时候,Android尝试初始化当前选择的片段两次,这会产生以下错误: 以下是产生错误的步骤顺序: 我加载活动,选择标签NR2。并更改设备的方向。 Android会破坏标签NR2加载的活动和片段的实例(

  • 本文向大家介绍当vue路由变化时,改变导航栏的样式方法,包括了当vue路由变化时,改变导航栏的样式方法的使用技巧和注意事项,需要的朋友参考一下 当我们需要做一个类似顶部 或 底部导航栏公共组件的时候,单击某个导航栏按钮,跳转到另一个组件, 并且改变导航栏按钮的样式,如果用<router-link to=""><router-link/> 跳转的时候,我们可以这样做, 改变router-link-a

  • 我有两个页面,第一个有白色状态栏,第二个页面有灰色状态栏,但当我从一个页面移动到另一个页面时,第二个页面需要第一个状态栏颜色?? 注意:当我从main函数运行第二页时,它的颜色是正确的 我用这个作为状态栏: 原因是什么?

  • 我有一个基于url的react组件,它应该导入一些数据,然后在另一个子组件中显示。当页面首次加载时,它将初始数据作为组件状态加载到中。至于进一步的url更改,它们将在export default class Info()中处理。组成部分{ 我的问题是,尽管switch语句中有状态更新,但组件不会重新渲染。我不知道我的方法有什么问题。有人能帮我吗?谢谢 编辑:这是使用而不是的代码: