ViewPager+Fragment+选项卡

    xiaoxiao2022-07-07  204

    ViewPager

    这是在手机上最常见的一种控件,几乎每款手机软件都会应用,ViewPager+Fragment的使用可以实现更加美观的界面和效果。

    java代码:

    主类:

    package com.example.day13; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.CompoundButton; import android.widget.RadioButton; import java.util.ArrayList; public class day13 extends AppCompatActivity { ViewPager vp; RadioButton first; RadioButton second; TabLayout tl; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_day13); vp = findViewById(R.id.vp); first = findViewById(R.id.first); second = findViewById(R.id.second); tl = findViewById(R.id.tb); first.setChecked(true); ArrayList<Fragment> list = new ArrayList<>(); ArrayList<String> titles = new ArrayList<>(); One one = new One(); Two two = new Two(); list.add(one); list.add(two); titles.add("选项卡1"); titles.add("选项卡2"); vp.setAdapter(new MyAdapter(getSupportFragmentManager(),list,titles)); tl.setupWithViewPager(vp); first.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked){ vp.setCurrentItem(0); } } }); second.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked){ vp.setCurrentItem(1); } } }); vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int i, float v, int i1) { } @Override public void onPageSelected(int i) { switch(i){ case 0: first.setChecked(true); break; case 1: second = findViewById(R.id.second); second.setChecked(true); break; } } @Override public void onPageScrollStateChanged(int i) { } }); } }

    适配器代码:

    package com.example.day13; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import java.util.ArrayList; public class MyAdapter extends FragmentPagerAdapter { ArrayList<Fragment> fragments; ArrayList<String> titles; public MyAdapter(FragmentManager fm, ArrayList<Fragment> fragments,ArrayList<String> titles) { super(fm); this.fragments = fragments; this.titles = titles; } @Override public Fragment getItem(int i) { return fragments.get(i); } @Override public int getCount() { return fragments.size(); } @Nullable @Override public CharSequence getPageTitle(int position) { return titles.get(position); } }

    Fragment类代码:

    package com.example.day13; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class One extends Fragment { @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.layout_one,container,false); } }

    效果图:

    最新回复(0)