[AndroidStudio] 툴바(Toolbar) 만들기
참고한 링크
ToolBar에서 사용할 Menu 추가
-
res 폴더 밑에 resource directory로
menu
옵션을 선택해 디렉토리를 만들고 그 안에 resource filemenu
옵션의 파일을 생성한다.
-
.xml
파일 작성
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_search"
android:title="search"
android:icon="@drawable/ic_toolbar_search"
app:showAsAction="always"
/>
<item
android:id="@+id/menu_relocate"
android:title="search"
android:icon="@drawable/ic_toolbar_relocate"
app:showAsAction="always"
/>
</menu>
<item>
태그는 각각 하나의 메뉴를 의미한다.
app: showAsAction
은 항상 툴바의 액션으로 보이게 표시하라는 의미이다.
참고로 xmlns:app="http://schemas.android.com/apk/res-auto"
이 코드는 상단에 반드시 추가해서 넣어야 한다.
다음과 같은 툴바가 생성된 것을 확인할 수 있다
- Activity 에서 Toolbar 설정
//Toolbar 를 AppBar로 지정하기
Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
toolbar.setTitle(R.string.Toolbar_title);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true); //뒤로가기 버튼, 디폴트로 true만 해도 back 버튼이 생김
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.toolbarmenu_search:
//검색창으로 이동
case android.R.id.home:{
onBackPressed();
}
default: return super.onOptionsItemSelected(item);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.toolbar_menu,menu);
return true;
}
replaceFragment 메서드
(Activity 안에 있는)
getSupportFragmentManager().beginTransaction().replace(R.id.home_ly,fragment).addToBackStack(null).commit();
- 각 fragment에서 backbutton 을 보이게/ 보이지 않게 설정
//백버튼 숨기기
((MainActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(false);
//백버튼 보이기
((MainActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Author And Source
이 문제에 관하여([AndroidStudio] 툴바(Toolbar) 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@eeheaven/AndroidStudio-툴바Toolbar-만들기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)