1.ViewPager简单介绍 ViewPager就是一个简单的页面切换组件,我们可以往里面填充多个View,然后我们可以左右滑动,从而切换不同的View,我们可以通过setPageTransformer()方法为我们的ViewPager> 设置切换时的动画效果。和ListView,GridView一样,我们也需要一个Adapter> (适配器)将我们的View和ViewPager进行绑定,而ViewPager则有一个特定的Adapter——> PagerAdapter!另外,Google官方是建议我们使用Fragment来填充ViewPager的,这样> 可以更加方便的生成每个Page,以及管理每个Page的生命周期!Google给我们提供了两个Fragment> 专用的Adapter:FragmentPageAdapter和FragmentStatePagerAdapter。 2.实现效果图以及工程目录结构: 3)、四个fragment及其布局文件 布局文件 剩余三个改下名字就好了,这里就不列上代码了。 4)、极为关键的一步,自定义FragmentPagerAdapter 5)、MainActivity.java
3.代码实现:
1)、相关资源文件后续补上
2)、主界面布局文件:<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android" xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <RadioGroup android:id="@+id/rg_tab_bar" android:layout_width="match_parent" android:layout_height="50dp" android:layout_alignParentBottom="true" android:background="@color/bg_white" android:orientation="horizontal"> <RadioButton android:id="@+id/rb_main" style="@style/tab_menu_item" android:drawableTop="@drawable/tab_menu_channel" android:text="主页" android:textSize="14sp"/> <RadioButton android:id="@+id/rb_query" style="@style/tab_menu_item" android:drawableTop="@drawable/tab_menu_message" android:text="查询" android:textSize="14sp"/> <RadioButton android:id="@+id/rb_predict" style="@style/tab_menu_item" android:drawableTop="@drawable/tab_menu_better" android:text="预测" android:textSize="14sp"/> <RadioButton android:id="@+id/rb_user" style="@style/tab_menu_item" android:drawableTop="@drawable/tab_menu_setting" android:text="个人中心" android:textSize="14sp"/> </RadioGroup> <View android:id="@+id/div_tab_bar" android:layout_width="match_parent" android:layout_height="2px" android:layout_above="@id/rg_tab_bar" android:background="@color/div_white" /> <androidx.viewpager.widget.ViewPager android:id="@+id/vpager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@id/div_tab_bar"/> </RelativeLayout>
HomeFragment:package com.example.buttommenubar; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; public class HomeFragment extends Fragment { private TextView textView; @Nullable @Override //类似于Activity里面的setContentView(); public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view=inflater.inflate(R.layout.fragment_home,container,false); return view; } @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); textView=view.findViewById(R.id.home); } }
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="https://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/home" android:layout_width="match_parent" android:layout_height="match_parent" android:text="这里是主界面" android:textAlignment="center" android:textSize="25sp"> </TextView> </LinearLayout>
代码如下:package com.example.buttommenubar; import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentPagerAdapter; public class MyFragmentPagerAdapter extends FragmentPagerAdapter { private final int PAGER_COUNT = 4; private HomeFragment homeFragment; private PredictFragment predictFragment; private QueryFragment queryFragment; private UserFragment userFragment; public MyFragmentPagerAdapter(FragmentManager fm) { super(fm); homeFragment=new HomeFragment(); predictFragment=new PredictFragment(); queryFragment=new QueryFragment(); userFragment=new UserFragment(); } @Override public Fragment getItem(int position) { Fragment fragment = null; switch (position) { case MainActivity.PAGE_ONE: fragment = homeFragment; break; case MainActivity.PAGE_TWO: fragment = queryFragment; break; case MainActivity.PAGE_THREE: fragment = predictFragment; break; case MainActivity.PAGE_FOUR: fragment = userFragment; break; } return fragment; } @Override public int getCount() { return PAGER_COUNT; } @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { return super.instantiateItem(container, position); } @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { super.destroyItem(container, position, object); } }
package com.example.buttommenubar; import androidx.appcompat.app.AppCompatActivity; import androidx.viewpager.widget.ViewPager; import android.os.Bundle; import android.widget.RadioButton; import android.widget.RadioGroup; public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener, ViewPager.OnPageChangeListener { private RadioGroup rg_tab_bar; private RadioButton rb_main; private RadioButton rb_query; private RadioButton rb_predict; private RadioButton rb_user; private ViewPager vpager; private MyFragmentPagerAdapter mAdapter; //代表页面的常量 public static final int PAGE_ONE = 0; public static final int PAGE_TWO = 1; public static final int PAGE_THREE = 2; public static final int PAGE_FOUR = 3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getSupportActionBar().hide(); setContentView(R.layout.activity_main); mAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager()); initViews(); rb_main.setChecked(true); } private void initViews() { rg_tab_bar = findViewById(R.id.rg_tab_bar); rb_main = findViewById(R.id.rb_main); rb_query = findViewById(R.id.rb_query); rb_predict = findViewById(R.id.rb_predict); rb_user = findViewById(R.id.rb_user); rg_tab_bar.setOnCheckedChangeListener(this); vpager = findViewById(R.id.vpager); vpager.setAdapter(mAdapter); vpager.setCurrentItem(0); vpager.addOnPageChangeListener(this); } @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId) { case R.id.rb_main: vpager.setCurrentItem(PAGE_ONE); break; case R.id.rb_query: vpager.setCurrentItem(PAGE_TWO); break; case R.id.rb_predict: vpager.setCurrentItem(PAGE_THREE); break; case R.id.rb_user: vpager.setCurrentItem(PAGE_FOUR); break; } } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { if (state == 2) { switch (vpager.getCurrentItem()) { case PAGE_ONE: rb_main.setChecked(true); break; case PAGE_TWO: rb_query.setChecked(true); break; case PAGE_THREE: rb_predict.setChecked(true); break; case PAGE_FOUR: rb_user.setChecked(true); break; } } } @Override public void onPointerCaptureChanged(boolean hasCapture) { } }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算