看了老罗视频 利用viewPager 制作滑动页面 ,实现了一下
可以左右滑动 对应着上面的标题
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" > //需要把参数写到<>内 比较特殊 <android.support.v4.view.PagerTitleStrip //标题 android:id="@+id/pagertitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="top" > </android.support.v4.view.PagerTitleStrip> </android.support.v4.view.ViewPager> </LinearLayout>然后新建3个布局 作为三个滑动页面
取名TAB1,TAB2,TAB3
布局里随便放一些控件 我放的是图片
然后回到
MainActivity
首先 变量
public class MainActivity extends Activity { private ViewPager viewPager; // ViewPager是android扩展包v4包中的类,这个类可以让用户左右切换当前的view private PagerTitleStrip pagerTitleStrip;// 滑动mei一页的标题 private List<View> list;// 表示装载滑动的布局 private List<String> titleList;//放标题然后是Oncaeate中的
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = (ViewPager) this.findViewById(R.id.viewpager); pagerTitleStrip = (PagerTitleStrip) this.findViewById(R.id.pagertitle); // 动态加载布局 View view1 = LayoutInflater.from(MainActivity.this).inflate( R.layout.tabbb1, null); View view2 = LayoutInflater.from(MainActivity.this).inflate( R.layout.tab2, null); View view3 = LayoutInflater.from(MainActivity.this).inflate( R.layout.tab3, null);
将三个布局加载 list = new ArrayList<View>(); list.add(view1); list.add(view2); list.add(view3); titleList = new ArrayList<String>(); titleList.add("特价秒杀"); titleList.add("一块包邮"); titleList.add("全场两块"); viewPager.setAdapter(new MyAdapter()); // 1)(跟这行无关)ViewPager类直接继承了ViewGroup类,所有它是一个容器类,可以在其中添加其他的view类。 // 2)(跟这行无关)ViewPager类需要一个PagerAdapter适配器类给它提供数据。必须重写最少4个方法 }接下来新建类MyAdapter 需要重写4个方法 有的过时的 统一用(ViewGroup cotainer,xxxxxxx)那个 方法
class MyAdapter extends PagerAdapter { @Override public int getCount() { // 返回布局个数 // TODO 自动生成的方法存根 return list.size(); } @Override public void destroyItem(ViewGroup container, int position, Object object) { // // TODO 自动生成的方法存根 ((ViewPager) container).removeView(list.get(position)); } @Override public CharSequence getPageTitle(int position) { // TODO 自动生成的方法存根 return titleList.get(position); } @Override public Object instantiateItem(ViewGroup container, int position) { // TODO 自动生成的方法存根 ((ViewPager) container).addView(list.get(position)); return list.get(position); } @Override public boolean isViewFromObject(View arg0, Object arg1) { // TODO 自动生成的方法存根 return arg0 == arg1; } }