Android----------ViewPager手机导航页(有小圆点)
1.主布局:(ViewpagerRadioGroup RadioButton)
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.viewpagerdaohang.MainActivity"> <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="470dp" > </android.support.v4.view.ViewPager> <RadioGroup android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center" android:layout_marginTop="470dp" > <RadioButton android:id="@+id/rb1" android:onClick="onClick" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:tag="0" /> <RadioButton android:id="@+id/rb2" android:onClick="onClick" android:layout_width="wrap_content" android:layout_height="wrap_content" android:tag="1" /> <RadioButton android:id="@+id/rb3" android:onClick="onClick" android:layout_width="wrap_content" android:layout_height="wrap_content" android:tag="2" /> </RadioGroup> </RelativeLayout> 2.在布局中加入需要展示的图片 one.xml two.xml three.xml 3.Pageadapter 适配器类
public class Pgadapter extends PagerAdapter { private ArrayList<View> mlist; public Pgadapter(ArrayList<View> mlist) { this.mlist = mlist; } @Override public int getCount() { return mlist==null?0:mlist.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(mlist.get(position)); } //这个方法一定要重写 @Override public Object instantiateItem(ViewGroup container, int position) { View view = mlist.get(position); container.addView(view); return view; } }
4.主界面中
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private ViewPager mvp; private ArrayList<View> mlist; private RadioButton rb1,rb2,rb3; private Button bt; //导航页最后一个图片进入系统的一个按钮 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initview(); } private void initview() { //找到viewpager和radiobutton的ID mvp=(ViewPager)findViewById(R.id.view_pager); rb1=(RadioButton)findViewById(R.id.rb1); rb2=(RadioButton)findViewById(R.id.rb2); rb3=(RadioButton)findViewById(R.id.rb3); //引入导航需要的图片布局并加入到集合中 LayoutInflater fr = LayoutInflater.from(this); View view1 = fr.inflate(R.layout.one, null); View view2 = fr.inflate(R.layout.two, null); View view3 = fr.inflate(R.layout.three, null); mlist=new ArrayList<View>(); mlist.add(view1);mlist.add(view2);mlist.add(view3); //Viewpager设置适配器 Pgadapter md=new Pgadapter(mlist); mvp.setAdapter(md); //viewpager页面变化的监听事件 mvp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { //展示当前页面时小圆点为选中状态 switch (position){ case 0: rb1.setChecked(true); break; case 1: rb2.setChecked(true); break; case 2: rb3.setChecked(true); break; } } @Override public void onPageScrollStateChanged(int state) { } }); } //进入主页按钮的点击事件 @Override public void onClick(View v) { switch (v.getId()){ case R.id.button : //进入主界面 Intent intent=new Intent(MainActivity.this,NextActivity.class); startActivity(intent); break; } } }