看了老罗视频 利用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;
}
}