편집 기록

편집 기록
  • 프로필 김선우님의 편집
    날짜2016.10.25

    안드로이드 프래그먼트 선택시 메뉴 글자색 변경


    https://github.com/neokree/MaterialTabs

    제가 구현하고자 하는것은 자주 쓰이는 라이브러리 Materialtabs와 같습니다.

    라이브러리 갖다 쓰면 편하겠지만 직접 구현해보는 것도 공부가 될까싶어 해보려합니다.

    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        Button btn[] = new Button[4];
        ViewPager viewPager = null;
        Thread thread = null;
        Handler handler = null;
        int p=0;    //페이지번호
        int v=1;    //화면 전환 뱡향
    
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            //viewPager
            viewPager = (ViewPager)findViewById(R.id.viewPager);
            MyViewPagerAdapter adapter = new MyViewPagerAdapter(getSupportFragmentManager());
    
            viewPager.setAdapter(adapter);
    
            btn[0] = (Button)findViewById(R.id.btn_a);
            btn[1] = (Button)findViewById(R.id.btn_b);
            btn[2] = (Button)findViewById(R.id.btn_c);
            btn[3] = (Button)findViewById(R.id.btn_d);
    
            for(int i=0;i<btn.length; i++){
                btn[i].setOnClickListener(this);
            }
        }
    
    
        @Override
        public void onClick(View v) {
    
            switch(v.getId()){
                case R.id.btn_a:
                    viewPager.setCurrentItem(0);
                    Toast.makeText(this,"A버튼", Toast.LENGTH_SHORT).show();
                    break;
                case R.id.btn_b:
                    viewPager.setCurrentItem(1);
                    Toast.makeText(this,"B버튼", Toast.LENGTH_SHORT).show();
                    break;
                case R.id.btn_c:
                    viewPager.setCurrentItem(2);
                    Toast.makeText(this,"C버튼", Toast.LENGTH_SHORT).show();
                    break;
                case R.id.btn_d:
                    viewPager.setCurrentItem(3);
                    break;
                default:
                    break;
    
            }
    
        }
    }
    

    프래그먼트와 뷰페이저를 이용하여 간단한 메뉴를 구현했습니다.

    그런데 상용 어플들을 보면, 해당 프래그먼트에 진입시 글자색이 바뀌는 등 표시가 있지않습니까?

    이것을 구현하려하는데 잘 감이 잡히지가 않습니다.

    애니메이션을 이용해야될것같긴한데, "해당 프래그먼트에 진입한 그 상태를 어떻게 체크하는지"가

    궁금합니다. setOnClickListener로 하자니, 클릭할 때만 애니메이션이 생길거같고...

    공부하는 학생이라 안드로이드 많은걸 알지는 못합니다.

    시간이 오래걸리거나 꽤나 어려운거라면

    과감히 라이브러리 쓰라고 말씀해주시면 감사하겠습니다

    좋은하루되세요

  • 프로필 알 수 없는 사용자님의 편집
    날짜2016.10.25

    안드로이드 프래그먼트 선택시 메뉴 글자색 변경


    https://github.com/neokree/MaterialTabs

    제가 구현하고자 하는것은 자주 쓰이는 라이브러리 Materialtabs와 같습니다.

    라이브러리 갖다 쓰면 편하겠지만 직접 구현해보는 것도 공부가 될까싶어 해보려합니다.

    `public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    Button btn[] = new Button[4];
    ViewPager viewPager = null;
    Thread thread = null;
    Handler handler = null;
    int p=0;    //페이지번호
    int v=1;    //화면 전환 뱡향
    
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        //viewPager
        viewPager = (ViewPager)findViewById(R.id.viewPager);
        MyViewPagerAdapter adapter = new MyViewPagerAdapter(getSupportFragmentManager());
    
        viewPager.setAdapter(adapter);
    
        btn[0] = (Button)findViewById(R.id.btn_a);
        btn[1] = (Button)findViewById(R.id.btn_b);
        btn[2] = (Button)findViewById(R.id.btn_c);
        btn[3] = (Button)findViewById(R.id.btn_d);
    
        for(int i=0;i<btn.length; i++){
            btn[i].setOnClickListener(this);
        }
    }
    
    
    @Override
    public void onClick(View v) {
    
        switch(v.getId()){
            case R.id.btn_a:
                viewPager.setCurrentItem(0);
                Toast.makeText(this,"A버튼", Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn_b:
                viewPager.setCurrentItem(1);
                Toast.makeText(this,"B버튼", Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn_c:
                viewPager.setCurrentItem(2);
                Toast.makeText(this,"C버튼", Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn_d:
                viewPager.setCurrentItem(3);
                break;
            default:
                break;
    
        }
    
    }
    

    } `

    프래그먼트와 뷰페이저를 이용하여 간단한 메뉴를 구현했습니다.

    그런데 상용 어플들을 보면, 해당 프래그먼트에 진입시 글자색이 바뀌는 등 표시가 있지않습니까?

    이것을 구현하려하는데 잘 감이 잡히지가 않습니다.

    애니메이션을 이용해야될것같긴한데, "해당 프래그먼트에 진입한 그 상태를 어떻게 체크하는지"가

    궁금합니다. setOnClickListener로 하자니, 클릭할 때만 애니메이션이 생길거같고...

    공부하는 학생이라 안드로이드 많은걸 알지는 못합니다.

    시간이 오래걸리거나 꽤나 어려운거라면

    과감히 라이브러리 쓰라고 말씀해주시면 감사하겠습니다

    좋은하루되세요