이번 시간에는 Navigation Drawer
쉽게 꾸미는 방법에 대하여 알아보겠습니다.
1. 실행 화면
2. 라이브러리 등록
3. 프래그먼트 생성
4. 메인 화면 구성 activity_main.xml
5. 메인 코드 구현 MainActivity.java
build.gradle(Module:프로젝트명:app)
dependencies 괄호 안에 아래 코드를 넣어주시면 됩니다.
implementation 'com.github.shrikanth7698:Custom-Navigation-Drawer:v0.0.1'
setting.gradle
repositories 괄호 안에 아래 코드를 넣어주시면 됩니다.
maven { url 'https://jitpack.io' }
참조 문서
https://github.com/shrikanth7698/Custom-Navigation-Drawer
GitHub - shrikanth7698/Custom-Navigation-Drawer: Custom Navigation Drawer Library for Android
Custom Navigation Drawer Library for Android. Contribute to shrikanth7698/Custom-Navigation-Drawer development by creating an account on GitHub.
github.com
java: MessageFm, NewsFm
xml: fragment_message_fm, fragment_news_fm
2022.01.08 - [안드로이드] - [안드로이드 스튜디오] 프래그먼트(Fragemnt) 만드는 방법
[안드로이드 스튜디오] 프래그먼트(Fragemnt) 만드는 방법
이번 시간에는 안드로이드 스튜디오에서 프래그먼트 화면을 추가하는 방법을 알아보겠습니다. app 선택 -> 마우스 오른쪽 -> New -> Fragment 다양한 버전의 Fragment가 있어 쓰임에 따라 골라 만드시면
aries574.tistory.com
MessageFragment
public class MessageFm extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_message_fm, container, false);
}
}
NewsFragment
public class NewsFm extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_news_fm, container, false);
}
}
fragment_message.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MessageFm">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="Message"
android:textSize="50sp" />
</FrameLayout>
fragment_news
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".NewsFm">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="News"
android:textSize="50sp" />
</FrameLayout>
<?xml version="1.0" encoding="utf-8"?>
<com.shrikanthravi.customnavigationdrawer2.widget.SNavigationDrawer 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"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/frame_layout"/>
</com.shrikanthravi.customnavigationdrawer2.widget.SNavigationDrawer>
public class MainActivity extends AppCompatActivity {
SNavigationDrawer sNavigationDrawer;
Class aClass;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sNavigationDrawer = findViewById(R.id.navigation_drawer);
//리스트 생성
List<MenuItem> itemList = new ArrayList<>();
//리스트에 메뉴 등록
itemList.add(new MenuItem("Message", R.drawable.message_bg));
itemList.add(new MenuItem("News", R.drawable.news_bg));
//네비게이션에 메뉴리스트 추가
sNavigationDrawer.setMenuItemList(itemList);
//기본 화면 설정
aClass = MessageFragment.class;
openFragment(); //프래그먼트 생성
//네비게이션 메뉴 선택 이벤트
sNavigationDrawer.setOnMenuItemClickListener(new SNavigationDrawer.OnMenuItemClickListener() {
@Override
public void onMenuItemClicked(int position) {
switch(position){
case 0:
aClass = MessageFragment.class;
break;
case 1:
aClass = NewsFragment.class;
break;
}
}
});
//네비게이션 이벤트
sNavigationDrawer.setDrawerListener(new SNavigationDrawer.DrawerListener() {
@Override
public void onDrawerOpening() {
}
@Override
public void onDrawerClosing() {
openFragment();
}
@Override
public void onDrawerOpened() {
}
@Override
public void onDrawerClosed() {
}
@Override
public void onDrawerStateChanged(int newState) {
}
});
}
/**
* 프래그먼트 생성
*/
private void openFragment() {
try{
//프래그 먼트 초기화
Fragment fragment = (Fragment) aClass.newInstance();
//프래그먼트 실행
getSupportFragmentManager().beginTransaction()
.setCustomAnimations(android.R.anim.fade_in
,android.R.anim.fade_out)
.replace(R.id.frame_layout, fragment)
.commit();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
}
}
}
[안드로이드] 선택자(Selector) 체크(checked) 체크박스(checkBox) 쉽게 활성화/비활성화 하는 방법 drawabl
이번 시간에는 체크박스의 체크상태에 따라 색상이 변경되고, 체크상태에 따라 버튼(Button)이 비활성화되었다가 활성화되는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 모양 drawable파
aries574.tistory.com
[안드로이드] 선택자(Selector) 포커스(Focused) 에디트텍스트(EditText) 쉽게 외곽선, 색상 주는 방법 dra
이번 시간에는 에디트텍스트(EditText)에 포커스(Focus)되면 외곽선, 색상주는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 모양 drawable파일 만들기 3. 선택자 포커스 drawable 파일 만들기 4.
aries574.tistory.com
[안드로이드] 선택자(Selector) 누르기(Pressed) vs 선택하기(Selected) 버튼 쉽게 변경하는 방법 drawable.xm
이번 시간에는 drawable파일을 만들고 selector태그에 속해있는 누르기(Pressed)와 선택하기(selected)를 사용해서 버튼 모양을 쉽게 변경하는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 모양
aries574.tistory.com
댓글 영역