1. res 폴더에 menu 폴더 생성
2. menu 폴더에 xml 파일 생성
menu/menu_list.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/tab1"
app:showAsAction="always"
android:icon="@drawable/main_list_icon"
android:iconTint="@drawable/item_color"
android:enabled="true"
android:checked="true"
android:title="@string/list"
/>
</menu>
-보여지는 방식
app:showAsAction="always"
always - 항상 보이도록 표시
never - 액션바에 표시 하지 않음 (기본값)
ifRoom - 액션바에 아이콘이 표시될 공간이 있을 경우
withText - 텍스트와 함께 표시 ( 텍스트는 title을 의미합니다 )
-메뉴의 아이콘 이미지 설정
android:icon="@drawable/main_list_icon"
drawable 폴더에 아이콘 이미지를 넣어두고 원하는 이미지의 경로를 설정하면 됩니다
-아이콘 선택시 동작 설정
android:iconTint="@drawable/item_color"
아이콘을 터치했을때 색상을 변경하고 싶을때 사용합니다. (Ex-BottomNavigationView 사용시 선택된 메뉴 아이콘 색상 변경, 버튼 클릭시 색상 변경)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="@color/colorYellow"/>
<item android:color="#FFFFFF"/>
</selector>
<item android:state_checked="true" android:color="@color/colorYellow"/> - 아이콘 터치시 색상
<item android:color="#FFFFFF"/> - 기본값
-선택 여부 설정
android:checked="true"
기본값으로 선택이 되어 있도록 하고 싶다면 true로 설정하면 됩니다.
그렇지 않다면 추가할 필요는 없습니다.
- 아이콘 제목 설정
android:title="@string/list"
아이콘의 제목을 설정한다.
리스트, 설정, 더보기 등등의 아이콘의 제목을 설정하는 부분입니다.
3. onCreateView
public class ViewMoreFragment extends Fragment {
ViewGroup viewGroup;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
viewGroup = (ViewGroup) inflater.inflate(R.layout.viewmorefragment,container,false);
setHasOptionsMenu(true);
return viewGroup;
}
}
setHasOptionsMenu(true);
프래그먼트가 옵션메뉴를 가질 수 있도록 설정해줘야합니다.
4. onCreateOptionsMenu 오버라이드
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu,inflater);
inflater.inflate(R.menu.menu_list,menu);
}
inflater.inflate(R.menu.menu_list);
2번에서 만들었던 xml 파일을 설정해줍니다.
ctrl + o 를 누르고 oncreateoptionsmenu를 검색하시면 확인 하실 수 있습니다.
5. onOptionsItemSelected 오버라이드
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int curId = item.getItemId();
switch (curId){
case tab1:
//tab1 메뉴 아이콘 선택시 이벤트 설정
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
메뉴의 아이콘을 선택 했을때의 이벤트를 설정해주면 됩니다.
int curId = item.getItemId(); (2번 xml파일에서 설정했던 id값)
'안드로이드 > 코드' 카테고리의 다른 글
[안드로이드] TextView, EditText 폰트 변경 하기(font-family, fontStyle) (0) | 2019.11.15 |
---|---|
[안드로이드] 여러 국가의 언어를 하나의 변수로 통합하기(strings.xml) (0) | 2019.11.14 |
[안드로이드] 키보드 내리기, 올리기(InputMethodManager) (0) | 2019.11.12 |
[안드로이드] 다이얼로그 띄우기 - AlertDialog (0) | 2019.11.11 |
[안드로이드] Calendar 클래스 사용해서 간단하게 오늘 날짜 가져오기(Calendar,SimpleDateFormat) (0) | 2019.11.09 |