[AndroidStudio] 툴바(Toolbar) 만들기

참고한 링크

[안드로이드] 툴바 사용법 - 버튼 추가

ToolBar에서 사용할 Menu 추가

  • res 폴더 밑에 resource directory로 menu옵션을 선택해 디렉토리를 만들고 그 안에 resource file menu옵션의 파일을 생성한다.

  • .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);

좋은 웹페이지 즐겨찾기