【问题标题】:Hamburger not showing on low api level汉堡不显示在低 API 级别
【发布时间】:2014-09-01 12:42:50
【问题描述】:

我正在使用带有 ActionBarDrawerToggle 的 ActionBarSherlock 实现一个操作栏。它应该在操作栏的左侧显示一个汉堡包按钮。它在更高的 api 级别上运行良好(在 api 级别 16 以上的设备上测试)。但是它不适用于 Android 2.3.7 设备 (api 10)。在此设备上,会显示一个左插入符号 (

这是我在代码中处理 ActionBarDrawerToggle 的方式:

public class MyActivity extends SherlockFragmentActivity {
    private ActionBarDrawerToggle drawerToggle;
    private MySidebarDrawerLayout sidebarDrawerLayout;
    ...

@Override
protected final void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.home);
    // init side bar drawer
    sidebarDrawerLayout = (SidebarDrawerLayout) 
        findViewById(R.id.sidebar_drawer_layout);

    drawerToggle = new ActionBarDrawerToggle(this, sidebarDrawerLayout, R.drawable.hamburger, R.string.drawer_open,R.string.drawer_close) {
        @Override
        public void onDrawerOpened(View drawerView) {
            super.onDrawerOpened(drawerView);
        }

        @Override
        public void onDrawerClosed(View drawerView) {
            super.onDrawerClosed(drawerView);
        }
    };

    ActionBar actionBar = getSupportActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);
    ...
}
}

那么为什么汉堡没有显示在较低的 api 上?

【问题讨论】:

标签: android android-actionbar actionbarsherlock


【解决方案1】:

以你的风格声明

<style name="AppBaseTheme" parent="@style/Theme.Sherlock.Light">

      <item name="homeAsUpIndicator">@drawable/hamburger</item>

</style>

并在您的清单中提及

 android:theme="@style/AppBaseTheme"

【讨论】:

  • 谢谢!这是有效的。但是新问题是当我打开操作栏上的搜索框时,汉堡包不会变回左插入符号。如何以编程方式将其设置回来?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-01
  • 1970-01-01
  • 2021-09-23
  • 2021-01-24
  • 1970-01-01
  • 2016-11-11
相关资源
最近更新 更多