我正在使用带有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?
答案 0 :(得分:2)
以你的风格声明
<style name="AppBaseTheme" parent="@style/Theme.Sherlock.Light">
<item name="homeAsUpIndicator">@drawable/hamburger</item>
</style>
并在你的清单中提及
android:theme="@style/AppBaseTheme"