Android小白系列:想到啥写啥第一期ViewPager+fragment界面切换

想到啥写啥第一期:致力于更简单易懂的代码解决我们安卓小白遇到的问题
viewPager+fragment
viewPager实现可以左右滑动切换界面
材料一共三样:主页面UI的ViewPager,新建一个Fragment把自己做的界面放进去,新建一个ViewPagerAdapter适配器
上代码:
1,先写Fragment的UI
<?xml version="1.0" encoding="utf-8"?>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="40sp"
                android:id="@+id/text"
                android:text="测试文本" />
        </LinearLayout>
        然后.java
        public class MyFrag extends Fragment {
            String text ;
            int background;
            //构造一个方法只是为了用同一个UI显示出来的背景颜色和内容稍微不一样而已
            public MyFrag(String text,int background) {
                this.text = text;
                this.background = background;
            }

            private TextView textView;

            @Nullable
            @Override
            public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
                View view = inflater.inflate(R.layout.myfrag,container,false);
                textView = view.findViewById(R.id.text);
                textView.setText(text);
                view.setBackgroundColor(background);
                return view;
            }
        }
    2,然后写适配器ViewPagerAdapter
        class MyAdapter extends FragmentPagerAdapter{
            FragmentManager manager;
            List<Fragment> fragmentList;
            //这些方法都是在继承之后按住alt+enter产生出来的,至于这个List<Fragment>使我自己写的待会儿用来放几个fragment
            public MyAdapter(@NonNull FragmentManager fm, List<Fragment> fragmentList) {
                super(fm);
                this.manager = fm;
                this.fragmentList = fragmentList;
            }

            @NonNull
            @Override
            public Fragment getItem(int position) {
                return fragmentList.get(position);
            }

            @Override
            public int getCount() {
                return fragmentList.size();
            }
        }
    3,最后就是主页面MainActivity.java 的收尾工作
        UI:
        <?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:gravity="center"
            android:layout_height="match_parent"
            tools:context=".MainActivity">

            <androidx.viewpager.widget.ViewPager
                android:id="@+id/viewPage"
                android:background="#0f0"
                android:layout_width="match_parent"
                android:layout_height="400sp"/>

        </LinearLayout>

        .java
        public class MainActivity extends AppCompatActivity {
            private ViewPager viewPager;
            private List<Fragment> fragments = new ArrayList<>();
            private MyAdapter adapter;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                viewPager = findViewById(R.id.viewPage);
                fragments.add(new MyFrag("测试碎片1", Color.BLUE));
                fragments.add(new MyFrag("测试碎片2", Color.RED));
                fragments.add(new MyFrag("测试碎片3", Color.YELLOW));
                adapter = new MyAdapter(getSupportFragmentManager(),fragments);
                viewPager.setAdapter(adapter);
            }
        }

    这样就是完成了最基本的切换功能,至于放什么界面,都可以自己设计,然后建一个fragmen,再依葫芦画瓢的放进去
    总框架就是这样,万变不离其宗,多用用就顺手了
发布了1 篇原创文章 · 获赞 0 · 访问量 53

猜你喜欢

转载自blog.csdn.net/weixin_43272727/article/details/104029255