안드로이드 이론 빡공 14
본문 바로가기
안드로이드(Android)

안드로이드 이론 빡공 14

by KyeongMin 2020. 6. 22.
728x90
반응형

**menu_botton.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">

    <!-- app:showAsAction="ifRoom" 공간이 있으면 보여줘라 의미

    -->
        <item
            android:id="@+id/tab1"
            app:showAsAction="ifRoom"
            android:enabled="true"
            android:icon="@android:drawable/ic_dialog_email"
            android:title="이메일"
            />
    <item
        android:id="@+id/tab2"
        app:showAsAction="ifRoom"
        android:enabled="true"
        android:icon="@android:drawable/ic_dialog_info"
        android:title="정보"
        />
    <item
        android:id="@+id/tab3"
        app:showAsAction="ifRoom"
        android:enabled="true"
        android:icon="@android:drawable/ic_dialog_map"
        android:title="위치"
        />

</menu>

**activity_main.xml**

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:id="@+id/container"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     app:layout_behavior="@string/appbar_scrolling_view_behavior"
        >
    </FrameLayout>

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottom_navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="@+id/container"
        app:layout_constraintStart_toStartOf="parent"
        app:itemBackground="@color/colorPrimary"
        app:itemIconTint="@drawable/item_color"
        app:itemTextColor="@drawable/item_color"
        app:menu="@menu/menu_botton"
        />

</androidx.constraintlayout.widget.ConstraintLayout>

**item_color.xml**

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color ="#51032d" android:state_checked="true"/>
    <item android:color="#CFD8DC"/>

    <!--여기서 state_cheked 선택된 상태이면 위에 색
    아니면 아래색을 보여달라라는 뜻-->
</selector>

**MainActivity.java **

package com.threedpit.mytab2;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.MenuItem;

import com.google.android.material.bottomnavigation.BottomNavigationView;

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);

        fragment1 = new Fragment1();
        fragment2 =new Fragment2();
        fragment3 = new Fragment3();

        //위와같이 일단 선언을 해주고 아래 와같이 우선 프래그먼트1화면 먼저 보여주게 설정
        getSupportFragmentManager().beginTransaction().replace(R.id.container,fragment1).commit();

        //아이템이 선택 되었을때 가 이 메소드가 실행되는 시점
        BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation);
        bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch (item.getItemId()){
                    case R.id.tab1:
                        getSupportFragmentManager().beginTransaction().replace(R.id.container,fragment1).commit();
                        return true;
                    case R.id.tab2:
                        getSupportFragmentManager().beginTransaction().replace(R.id.container,fragment2).commit();
                        return true;
                    case R.id.tab3:
                        getSupportFragmentManager().beginTransaction().replace(R.id.container,fragment3).commit();
                        return true;
                }
                return false;
            }
        });


    }
}

728x90
반응형

'안드로이드(Android)' 카테고리의 다른 글

안드로이드 이론 빡공 16  (0) 2020.06.24
안드로이드 이론 빡공 15  (0) 2020.06.23
안드로이드 이론 빡공 13  (0) 2020.06.19
안드로이드 이론 빡공 12  (0) 2020.06.19
안드로이드 이론 빡공 11  (0) 2020.06.17

댓글