2013-07-17 2 views
4

그래서 이전에 커스텀 (매우 잘못 작성된) "액션 바"를 구현 한 프로젝트에 ActionBarSherlock과 Navigation Drawer를 추가하려고합니다. 파편과 네비게이션을위한 활동의 ​​백 스택을 사용하는 대신, 일부 액티비티는 다른 레이아웃을 보이거나 숨 깁니다. (즉, 목록 모드에 있고 편집 화면으로 들어가기 위해 단추를 선택한다고 가정하면, 현재 목록 레이아웃이 숨겨지고 다른 레이아웃이 표시됩니다.)안드로이드 ActionBar에 내비게이션 아이콘 설정

그래서 나는 모든 활동에 액션 바를 sherlock과 탐색 서랍을 추가했습니다. 특정 단추를 누를 때 프로그래밍 방식으로 탐색 아이콘을 3 줄에서 화살표로 전환 할 수 있어야합니다.

enter image description here

나는이 생각을 수행하는 방법을 알아낼 수 없습니다. 어떤 아이디어?

감사합니다.

답변

7

이 문제의 해결책은 상기 방법을 사용하는 것이다.

2

내장 된 액션 바 인공물에 얼마나 매료 되느냐에 따라 다릅니다. 당신은 항상 당신이, 당신은 할 수 있습니다 (당신이 당신의 탐색 서랍을 할 수있는 DrawerLayout를 사용하는 가정) 표준으로 돌아가하려는 경우 다음

getSherlockActivity().getSupportActionBar().setDisplayShowTitleEnabled(false); 
getSherlockActivity().getSupportActionBar().setDisplayShowHomeEnabled(false); 
getSherlockActivity().getSupportActionBar().setDisplayShowCustomEnabled(true); 
// Inflate and do whatever you need to your view... 
getSherlockActivity().getSupportActionBar().setCustomView(abView); 
getSherlockActivity().getSupportActionBar().show(); 

를 호출, 사용자가 선택한 레이아웃을 팽창하여 현재 액션 바 다시 그릴 수 있습니다 setDisplayShowCustomEnabled(false) (다시 showHome 및 showTitle을 사용하도록 설정하십시오)로 전화를 걸면됩니다.

+0

감사합니다, 그 작동,하지만 불행히도 나는 그것없는 가장 실용적인 솔루션을 생각합니다. 그래도 감사합니다. – Synergy807

1

내가 아는 한 뒤로 단추 사용자 지정은 테마를 통해서만 수행 할 수 있습니다. 게다가 사용자가 왼쪽 가장자리를 오른쪽으로 밀면 탐색 서랍에 계속 액세스 할 수 있기 때문에 동일한 액티비티 내의 뒤 아이콘에 대한 서랍 아이콘을 바꾸는 것은 의미가 없습니다. 그것은 단지 말이되지 않습니다.

백 아이콘이 절대적으로 필요한 경우 실제로 백 아이콘이 나타내는 다른 "레벨"을 스택에 추가 할 것이므로이 스크린을 새로운 액티비티로 만드는 것이 가장 좋습니다. ActionBarDrawerToggle 클래스 내에

setDrawerIndicatorEnabled(boolean enable) 

:

+0

나는 그것을 이해하지 않는다는 데 동의하지만, 나는 주어진 것에 대해 작업해야만한다. =/ 다른 레벨을 스택에 추가하는 것을 모방하고 싶다. 짧은 시간에, 나는 이미지를 바꾸고 android.R.id.home 메뉴 항목을 무시하는 것이 더 쉬울 것이라고 생각했다. 그래서 나는이 버전을 출판 할 수 있었다. 그러나 아마 당신 말이 맞을 것입니다, 아마 나는 단지 다른 활동으로 만들어야 할 것입니다. – Synergy807

+0

나는 이것이 의미가 없다는 것에 반드시 동의하지 않지만, 어쨌든 내 의견은 가치가 없다. 사실 Google은 Google 뮤직 앱에서이 작업을 수행합니다. "집"에서 앨범을 탭하면, 액션 바가 "뒤로"캐럿을 나타내는 액티비티로 이동하게됩니다. 그러면 다시 드래그하면 서랍이 생깁니다. 위의 애플 리케이션의 sshot가, 왼쪽에서 드래그하고 서랍이 올 것입니다 방법을 알림, 작업 표시 줄을 통지 : https://www.dropbox.com/sc/qs00ozm18n6v3ep/a3JuhL9LPu –

3

은 후 :

drawer.setDrawerListener(toggle); 

사용이 코드 : 귀하의 제안에 대한

getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
getSupportActionBar().setHomeButtonEnabled(true); 
getSupportActionBar().setHomeAsUpIndicator(R.drawable.select);