티스토리 뷰
우선 dependency에 design 추가하고 gradle에서 싱크를 맞춰준다.
이렇게
- 나는 에러가 나서 에러메시지대로 minSdkVersion을 21로 올려줬고
- 밑에 보면 design 의 버젼은 현재 targetSdkVersion인 29로 맞춰줬다
그리고 탭을 만들어주는거기때문에 처음 메인액티비티 만들 때 디폴트로 생성되는
액션바는 없애준다. 밑에 No로 하면 됨.
fragment1, 2, 3 . java
fragment1, 2, 3 숫자만 바꿔준다
MainActivity.java
package com.example.mytap;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import android.os.Bundle;
import androidx.appcompat.widget.Toolbar;
import com.google.android.material.tabs.TabLayout;
public class MainActivity extends AppCompatActivity {
Fragment1 fragment1;
Fragment2 fragment2;
Fragment3 fragment3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
fragment1 = new Fragment1();
fragment2 = new Fragment2();
fragment3 = new Fragment3();
getSupportFragmentManager().beginTransaction().add(R.id.container,fragment1).commit();
TabLayout tabs = (TabLayout)findViewById(R.id.tabs);
tabs.addTab(tabs.newTab().setText("친구"));
tabs.addTab(tabs.newTab().setText("일대일채팅"));
tabs.addTab(tabs.newTab().setText("기타"));
tabs.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
int position = tab.getPosition();
Fragment selected = null;
if(position==0){
selected = fragment1;
}else if(position==1){
selected = fragment2;
}else if(position==2){
selected = fragment3;
}
getSupportFragmentManager().beginTransaction().replace(R.id.container,selected).commit();
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<androidx.appcompat.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimaryDark"
android:theme="@style/ThemeOverlay.AppCompat.Dark"
android:elevation="1dp"
android:id="@+id/toolbar">
</androidx.appcompat.widget.Toolbar>
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="1dp"
android:background="@android:color/background_light"
app:tabMode="fixed"
app:tabGravity="fill"
app:tabTextColor="@color/colorPrimary"
app:tabSelectedTextColor="@color/colorAccent">
</com.google.android.material.tabs.TabLayout>
</com.google.android.material.appbar.AppBarLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:id="@+id/container">
</FrameLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</RelativeLayout>
액션바 no로 해놔서 CoordinatorLayout으로 해야 얘가 알아서 액션바-탭-이하 프레임레이아웃을
서로 겹치지않게 잘 맞춰준다.
나머지 fragment2, 3.xml은 위에서 속성 글자랑 색만 바꿔주면 된다.
'Android' 카테고리의 다른 글
소켓 통신을 이용한 안드로이드 채팅 애플리케이션 (9) | 2020.07.10 |
---|---|
뷰페이저, 페이저타이틀스트립 (PagerTitleStrip) 예시 (0) | 2020.04.26 |
액션바 예시 (0) | 2020.04.22 |
한 레이아웃에 프래그먼트 여러개 예시 (0) | 2020.04.22 |
프래그먼트 예시 (0) | 2020.04.22 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- objc
- 액션바
- allcases
- 스낵바설정
- ios
- CaseIterable
- 쉐이프드로어블
- 부가데이터
- 상태드로어블
- 제스처디텍터
- 표현패턴
- subscript
- 데이터
- 다이얼연결
- 인플레이터
- Objective-C
- 비트맵버튼
- 카카오톡열기
- 알림대화상자
- 터치리스너
- 전화연결하기
- 어댑터
- 전화걸기연결
- 프래그먼트매니저
- swift
- 페이저타이틀스트립
- 뷰페이저
- 프래그먼트
- prepareforreuse
- 안드로이드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함