[안드로이드] - 커스텀 툴바 만들기(Toolbar)
○ 커스텀 툴바 만들기(Toolbar) |
1. res-values-styles.xml 에서 parent를 Theme.AppCompat.Light.NoActionBar 로 바꾼다 (타이블 바 제거를 위함) 2. activity_main.xml 에 Toolbar 위젯을 추가한다 <android.support.v7.widget.Toolbar android:id="@+id/up_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="#ffffff" android:elevation="4dp" // 툴바 사이즈 조절 android:theme="@style/ThemeOverlay.AppCompat.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 3. res-menu-menu.xml 을 만들고 메뉴에 넣거나 툴바에 붙일 메뉴들을 만든다 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:context="com.example.dd.tyt.MainActivity"> <item android:id="@+id/search_icon" android:title="검색버튼" android:icon="@drawable/search_icon" // 아이콘으로 적용 app:showAsAction="ifRoom"/> // 툴바에 아이콘이 보이게 설정 <item android:id="@+id/write_icon" android:title="글쓰기버튼" app:showAsAction="ifRoom"/> // 툴바에 글로 보이게 설정 <item android:id="@+id/action_settings3" android:title="로그인" app:showAsAction="never"/> // 메뉴 안에 넣게 설정 <item android:id="@+id/action_settings4" android:title="회원가입" app:showAsAction="never"/> <item android:id="@+id/action_settings5" android:title="글쓰기" app:showAsAction="never"/> </menu> 4. MainActivity.java 에서 툴바를 가져와 메뉴들을 넣고 각각의 메뉴에 이벤트 처리를 한다 public class MainActivity extends AppCompatActivity { Toolbar up_toolbar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 만들 툴바를 가져와 셋팅한다 up_toolbar = (Toolbar) findViewById(R.id.up_toolbar); setSupportActionBar(up_toolbar); getSupportActionBar().setIcon(R.drawable.menu_logo); // 타이틀 대신 로고를 추가 getSupportActionBar().setDisplayShowTitleEnabled(false); // 타이틀 이름 안보이게 } // 툴바에 menu.xml을 집어넣는다 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater menuInflater = getMenuInflater(); menuInflater.inflate(R.menu.menu, menu); return true; } // 툴바에 삽입된 메뉴에 대해서 이벤트 처리 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.search_icon: Toast.makeText(getApplicationContext(), "검색 버튼이 클릭됨", Toast.LENGTH_LONG).show(); return true; case R.id.write_icon: Toast.makeText(getApplicationContext(), "글쓰기 버튼이 클릭됨", Toast.LENGTH_LONG).show(); return true; default: Toast.makeText(getApplicationContext(), "나머지 버튼 클릭됨", Toast.LENGTH_LONG).show(); return super.onOptionsItemSelected(item); } } } |
'안드로이드' 카테고리의 다른 글
[안드로이드] - RecyclerView 리싸이클러뷰 클릭 이벤트 사용하기 (0) | 2018.04.01 |
---|---|
[안드로이드] - RecyclerView + CardView 사용하기 (0) | 2018.04.01 |
[안드로이드] - strings.xml colors.xml 활용하기 (0) | 2018.03.23 |
[안드로이드] - 어플 종료 시 광고창 띄우기 (0) | 2017.11.26 |
[안드로이드] - 문자열 자르기(분리하기) (0) | 2017.11.22 |