Tôi đang cố gắng sử dụng DrawerLayout mới cho danh sách. Vấn đề là mặc dù tôi đặt người nghe ngăn kéo, chỉ báo trên thanh tác vụ vẫn là biểu tượng mũi tên thay vì biểu tượng 3 dòng mà tôi dự định vẽ. Sau đây là chức năng OnCreate:Android DrawerLayout không hiển thị biểu tượng chỉ báo bên phải
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_front_page);
// Swiping Pager set up
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
// Sliding Drawer set up
mHabitContract = new HabitsContract(this);
mDrawerLayout = (DrawerLayout) findViewById(R.id.front_page_layout);
mDrawerList = (ListView) findViewById(R.id.habit_list);
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
mDrawerList.setAdapter(new HabitAdapter(mHabitContract.GetHabitItems(), this));
// Fixme: Indicator image doesn't show up
mDrawerToggle = new ActionBarDrawerToggle(
this, /* host Activity */
mDrawerLayout, /* DrawerLayout object */
R.drawable.ic_navigation_drawer, /* nav drawer image to replace 'Up' caret */
R.string.drawer_open, /* "open drawer" description for accessibility */
R.string.drawer_close /* "close drawer" description for accessibility */
) {
public void onDrawerClosed(View view) {
//getActionBar().setTitle(mTitle);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
public void onDrawerOpened(View drawerView) {
//getActionBar().setTitle(mDrawerTitle);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
// Action Bar set up
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayShowHomeEnabled(true);
}
Có ai giúp được không?
Cập nhật: Tôi đã tìm thấy sự cố. Tôi đã thêm hàm onPostCreate như sau, và bây giờ nó hoạt động.
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// Sync the toggle state after onRestoreInstanceState has occurred.
mDrawerToggle.syncState();
}
http://www.coderzheaven.com/2013/06/28/navigation-drawer-android/ –
Tôi đã tải xuống ứng dụng mẫu, chạy hoàn toàn tốt. Nhưng mã của tôi gần như giống hệt nhau, vì vậy tôi không thực sự biết vấn đề là gì. – zhengbli
cố gắng lấy mã từ ứng dụng đã tải xuống đó vào mã của bạn và thay đổi theo yêu cầu của bạn. –