2014-11-20 2 views
29

툴바를 작업 표시 줄로 설정하고 싶지만 툴바는 레이아웃 요소이므로 레이아웃에 있어야합니다. 이제 제 레이아웃이 제 조각에 있습니다. 툴바를 조각으로 작업 모음으로 설정하십시오.

나는 내 레이아웃에 도구 모음을 추가하고 내 조각 내에서 전화 :

//Toolbar 
Toolbar toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar); 

내가 제목을 설정할 수 있습니다 등등하지만 지금은 내가 원하는 때문에이 액션 바으로 반응 할 때문에 작동 이 사실을 가지고 있습니다.

은 내가 액션 바 도구 모음을 변경해야 할 일 (참) setDisplayHomeAsUpEnabled :

아무도 나를 데 도움 수

...

setSupportActionBar(toolbar); 

내 조각에서 작동하지 않습니다 내 툴바는 조각에서 작업 표시 줄로 작동합니다.

답변

39

이제 ActionBarActivity 그래서 당신은 getActivity()에서 처음 AppCompatActivity에 활동을 캐스팅 할 필요가 를 사용되지 않습니다. 다음은 예입니다 :

((AppCompatActivity) getActivity()).getSupportActionBar().setSubtitle(); 

당신이 getActivity()FragmentActivity를 반환하고 당신이 AppCompatActivity

15

ActionBar는 활동 속성입니다. 주어진 프래그먼트에서 툴바를 소유 Activity의 ActionBar로 설정하려면 프래그먼트 (Fragment.getActivity())를 소유 한 Activity를 가져 와서 ActionBar 속성을 설정하십시오.

그러면 juse는 도구 모음을 ActionBar로 설정 한 후 ActionBar에서 시작하여 뒤로/위로 버튼을 가져온 것과 동일한 setDisplayHomeAsUpEnabled 메소드를 사용합니다.

귀하의 앱이 해당 액티비티 내에 여러 개의 조각을 가지고 있다면 분명히 이것을 관리해야합니다.

+0

난 그냥 내가 그렇게 탐색을 사용하려면를 그것이 내 툴바로 만들어진 액션 바를 필요로한다고 생각합니다. 어떻게 ActionBar 속성을 설정할 수 있습니까? 예를 들어 주시겠습니까? – Laurenswuyts

+0

툴바를 기본 액티비티에 넣으면 setSupportActionBar 메서드 –

+0

을 사용할 수 있습니다. 조각을 사용하고 내 액티비티가 아닌 내 조각으로 레이아웃을 설정했기 때문입니다. 그래서 액티비티가 툴바를 찾은 후에 프래그먼트가로드되기 때문에 내 액티비티는 내 프래그먼트에서 툴바를 감지 할 수 없습니다. – Laurenswuyts

7

사용

((ActionBarActivity) getActivity()).getSupportActionBar().setSubtitle("Your Title"); 
+0

NullPointerException이 반환됩니다. – Machado

+5

설정하기 전에 설정해야합니다. (그 운) – notdrone

25

시도해야하기 때문에 그것이 캐스팅해야하는 이유 :

((AppCompatActivity)getActivity()).setSupportActionBar(toolbar); 
관련 문제