일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- react #react 프로젝트 생성 #초보 #쉽게 #react 세팅 #react frontend #리액트 기본구조
- mariadb #mysql
- 안드로이드 아이콘 만들기 #안드로이드 vector asset #android vector asset custom #안드로이드 vector background color change #android pathdata editor #vector drawables edit #vector drawable background color #drawable background color #an
- 부트스트랩 #bootstrap install #
- my.ini위치 확인
- 안드로이드 #앱 아이콘 #앱 아이콘 커스텀하기 #앱 로고 만들기 #앱 아이콘 만들기 #android logo custom #android icon custom #android logo 만들기 #image asset #
- 안드로이드 앱 아이콘 변경 #안드로이드 앱 아이콘 사이즈 #안드로이드 앱 아이콘 가이드
- MySQL #안드로이드 로그인기능 #안드로이드 php 오류 #안드로이드 db #
- react #리액트 #프로젝트 초기세팅 #초기구현 #클린코드 #cleancode #node #react-node #vite #react 설치 #react 세팅 #쇼핑몰 #eslint 설정 #vite eslint #TailWindCSS란? #테일윈드적용 #TailWindCSS 적용
- android #tip #timer #handler #sendmessagedelayed
- XAMPP #PHP #mysql #Android #연동
- php #안드로이드 #로그인&회원가입
- 안드로이드 로그인 회원가입 기능 #안드로이드 php 로그인 #userValidate.php #android php 중복체그 #안드로이드 회원가입 id 중복체크 기능 #android login id check
- 터미널 #terminal #aws 인스턴스 접속
- 부트스트랩 추가시 오류 #
- Module not found: Error: Can't resolve '@popperjs/core'
- 회원가입 구현 #java
- Android #bottom navigation View #Bottom tab #FRAGMENT #JAVA #Material Design #안드로이드 프래그먼트 바텀 네비게이션 뷰 커스텀 #안드로이드 메뉴 아이콘 커스텀 #안드로이드 메뉴 #프래그먼트 메뉴 #fragment menu i
- nodejs #express #게시판 기능 구현
- 크롤링 #텍스트 크롤링 #파이썬 #구름IDE
- mysql #dataloongforcolumn #ER_DATA_TOO_LONG #mariaDB #my.ini찾기 #숨김my.ini찾기 #strict mode 해제 #strict mode
- hedisql limit 1000
- android hedisql #안드로이드 mariaDB #안드로이드 로그인 권한 #안드로이드 로그인
- 리눅스 #우분투 포트포워딩 #리눅스 포트포워딩 #우분투22.04 php apache db #mariadb #mysql
- db 프로시저 권한 부여 #db procedure 권한 부여 #
- Apache #PHP #마리아DB #아파치
- hedisql #mariadb #mysql #마리아db #암호화 복호화 #aes512 #aes_encrypt #aes_decrypt #hedisql 펑션 생성 #hedisql 프로시저 생성 #hedisql 매개변수 #db 펑션 매개변수 #db 프로시저 #db 함수 #db return
- procedure does not exist
- 안드로이드 타이머 #타이머 #handler timer #android handler timer #countdowntimer
- MySQL(MariaDB)접속 #MariaDB원격 접속 #콘솔에서mysql접속 #원격지에서MySQL #php안드로이드 연동
- Today
- Total
맨땅에 코딩
[안드로이드] fragment 창 생성 + bottom navigation bar 커스텀 + 메뉴 아이콘 커스텀(저작권 상관X) 본문
[안드로이드] fragment 창 생성 + bottom navigation bar 커스텀 + 메뉴 아이콘 커스텀(저작권 상관X)
맨땅 2022. 8. 10. 16:37목차
-종속성 추가
build.gradle에 dependencies안에 종속성을 추가한다
//bottom navigation view
implementation 'com.google.android.material:material:1.2.0'
- Bottom navigation menu 추가 + menu icon 추가
res - new - new Resoucr Directory에서 menu Directory를 생성해줍니다
btm_menu.xml을 menu Directory안에 만들어 줍니다
원하는 메뉴 아이콘은 drawable - new - Vector Asset에서 Clip Art중 원하는 아이콘 선택 후
색깔과 크기를 커스텀해주시면 됩니다
- 어두운 테마 적용
저는 어두운 테마를 좋아해서 아래 부분은 어두운 테마 적용 방법입니다 생략하고 넘어가셔도 됩니다
AndroidManifest.xml에서 theme를
android:theme="@style/AppTheme">
로 바꿔주세요!
그 후 res - values 에 styles.xml을 만든후
<resources>
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
</style>
</resources>
이렇게 입력해주시면 어두운 테마 설정 끝입니다
- activity_main.xml 작성
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="679dp"
android:orientation="vertical"
android:layout_weight="1">
</LinearLayout>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottomNavigationView"
android:layout_width="match_parent"
android:layout_height="56dp"
app:itemIconTint="@color/tab_selection_color"
app:itemTextColor="@color/tab_selection_color"
app:menu="@menu/btm_menu">
</com.google.android.material.bottomnavigation.BottomNavigationView>
</LinearLayout>
itemtint, itemTextColor는 선택했을때 색깔이 달라지도록 제어하기 위해 만들었습니다
이런 기능이 필요 없으시면 안 넣으시면 됩니다
만약 메뉴를 선택했을때 색깔이 달라지는 기능이 필요할시 아래부분 적용하시면 됩니다
res에 color - tab_selection_color.xml 생성
선택했을때 색상 코드를 state_checked에 적용해주시면 됩니다
-MainActivity에 추가
package com.example.blehealthapplication;
import android.os.Bundle;
import android.view.MenuItem;
import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.example.blehealthapplication.Fragment.HomeFragment;
import com.example.blehealthapplication.Fragment.SettingFragment;
import com.example.blehealthapplication.Fragment.Tab1Fragment;
import com.example.blehealthapplication.Fragment.Tab2Fragment;
import com.google.android.material.bottomnavigation.BottomNavigationView;
public class MainActivity extends AppCompatActivity {
//BottomNavigationView
LinearLayout btm_ly;
BottomNavigationView bottomNavigationView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init(); //초기 설정
}
private void init() {
btm_ly = findViewById(R.id.btm_ly);
bottomNavigationView = findViewById(R.id.bottomNavigationView);
}
private void SettingListener() {
//선택 리스너 등록
bottomNavigationView.setOnNavigationItemSelectedListener(new TabSelectedListener());
}
class TabSelectedListener implements BottomNavigationView.OnNavigationItemSelectedListener{
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.tab_home: {
getSupportFragmentManager().beginTransaction()
.replace(R.id.btm_ly, new HomeFragment())
.commit();
return true;
}
case R.id.tab_1: {
getSupportFragmentManager().beginTransaction()
.replace(R.id.btm_ly, new Tab1Fragment())
.commit();
return true;
}
case R.id.tab_2: {
getSupportFragmentManager().beginTransaction()
.replace(R.id.btm_ly, new Tab2Fragment())
.commit();
return true;
}
case R.id.tab_settings: {
getSupportFragmentManager().beginTransaction()
.replace(R.id.btm_ly, new SettingFragment())
.commit();
return true;
}
}
return false;
}
}
}
메뉴를 선택했을때 해당 fragment.java 파일도 만들어줍니다
'앱 개발 > Java' 카테고리의 다른 글
[Android] 앱 아이콘(로고) 만들기 + 변경하기 (Image Asset 사용) (0) | 2022.11.24 |
---|---|
[Android] Timer 구현 - Handler (0) | 2022.09.13 |
[android] Toolbar menu 사용하기(왼쪽, 오른쪽 다) + menu icon 커스텀 (0) | 2022.07.27 |
[안드로이드]ActionBar, ToolBar, 상태 표시줄 커스텀 (0) | 2022.07.26 |
안드로이드 연결된 wifi ssid 정보 얻기 (0) | 2022.07.15 |