티스토리 뷰

Android/Java

[Java]  TabLayout

혀가 길지 않은 개발자 2020. 7. 3. 00:02

build.gradle (Modult: app)

dependencies {
	implementation 'com.google.android.material:material:1.1.0'
}

TabLayout, TabItem 는 머티리얼 디자인이므로 의존성 추가


 

 

 

 

 

 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    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"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <com.google.android.material.tabs.TabLayout
        android:id="@+id/tabLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <com.google.android.material.tabs.TabItem
            android:id="@+id/tabRed"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Red" />

        <com.google.android.material.tabs.TabItem
            android:id="@+id/tabGreen"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Green" />

    </com.google.android.material.tabs.TabLayout>

    <FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#FFBBBB"/>

</LinearLayout>

activity_main.xml

 

 

 

 

 

 

MainActivity.java

package com.jwsoft.javaproject;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.widget.FrameLayout;

import com.google.android.material.tabs.TabLayout;

public class MainActivity extends AppCompatActivity {

    private FrameLayout frameLayout;
    private TabLayout tabLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        frameLayout = findViewById(R.id.frameLayout);
        tabLayout = findViewById(R.id.tabLayout);
        tabLayout.addTab(tabLayout.newTab().setText("BLUE"));
        tabLayout.addTab(tabLayout.newTab().setText("WHITE"));
        tabLayout.addTab(tabLayout.newTab().setText("BLACK"));

        tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                switch (tab.getPosition()) {
                    case 0:
                        frameLayout.setBackgroundColor(Color.parseColor("#FFBBBB"));
                        break;
                    case 1:
                        frameLayout.setBackgroundColor(Color.parseColor("#BBFFBB"));
                        break;
                    case 2:
                        frameLayout.setBackgroundColor(Color.parseColor("#BBBBFF"));
                        break;
                    case 3:
                        frameLayout.setBackgroundColor(Color.parseColor("#FFFFFF"));
                        break;
                    case 4:
                        frameLayout.setBackgroundColor(Color.parseColor("#000000"));
                        break;
                }
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {

            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {

            }
        });

    }
}

실행 결과

 

GREEN 버튼 클릭 후
BLUE 버튼 클릭 후

 

WHITE 버튼 클릭 후

 

BLACK 버튼 클릭 후

 

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함