whitz 2021. 12. 22. 11:53

< ViewFlipper >

 

- 여러화면을 한 화면에서 볼 수 있게 해주는 컨테이너

- 화면 전환이 쉽게 가능함

 

① .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="wrap_content">

        <Button
            android:id="@+id/btn1"
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="이전 화면" />

        <Button
            android:id="@+id/btn2"
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="다음 화면" />

    </LinearLayout>
    
    <ViewFlipper
        android:id="@+id/vf1"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#85CC88"/>   
        
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#EDE387"/>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#E6827B"/>
    </ViewFlipper>

</LinearLayout>

 

- weight : 가중치

  · 버튼 2개를 각각 1로 주었더니 너비의 절반씩 차지함

 

 

② .java

 

 

package com.example.ex6_15;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ViewFlipper;

public class MainActivity extends AppCompatActivity {

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

        Button btn1 = findViewById(R.id.btn1);
        Button btn2 = findViewById(R.id.btn2);
        ViewFlipper vf1 = findViewById(R.id.vf1);

        vf1.setFlipInterval(500);
        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //vf1.showNext();
                vf1.stopFlipping();
            }
        });

        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //vf1.showPrevious();
                vf1.startFlipping();
            }
        });
    }
}

 

 

- showNext(), showPrevious()로 두면 버튼을 클릭하면서 다음 화면, 이전 화면으로 넘김

- startFlipping(), stopFlipping()으로 두면 자동으로 슬라이드쇼처럼 화면이 넘어감

  · 자동화면전환시 간격은 setFlipInterval()로 설정가능