本来写的ViewPager+Fragment好好地,移动页卡也没问题,但是我加上监听事件以后,再去滑动页卡程序就崩溃强退了。下面是MainActivity代码:
package com.example.myapplication;
import android.graphics.Color;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.ViewPager;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends FragmentActivity implements ViewPager.OnPageChangeListener {
private List<View> viewList;
private ViewPager pager;
private List<String> titleList;
private PagerTabStrip tabStrip;
private List<Fragment>fragmentList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化
viewList =new ArrayList<>();
titleList =new ArrayList<>();
fragmentList =new ArrayList<>();
//加载Fragment
fragmentList.add(new MyFragment1());
fragmentList.add(new MyFragment2());
fragmentList.add(new MyFragment3());
fragmentList.add(new MyFragment4());
//为页卡加载标题
titleList.add("第一页");
titleList.add("第二页");
titleList.add("第三页");
titleList.add("第四页");
tabStrip= (PagerTabStrip) findViewById(R.id.tab);
//设置标题属性
tabStrip.setBackgroundColor(Color.BLACK);
tabStrip.setTextColor(Color.WHITE);
tabStrip.setDrawFullUnderline(false);
tabStrip.setTabIndicatorColor(Color.RED);
pager= (ViewPager) findViewById(R.id.pager);
//加载页卡
View view1=View.inflate(this,R.layout.view1,null);
View view2=View.inflate(this,R.layout.view2,null);
View view3=View.inflate(this,R.layout.view3,null);
View view4=View.inflate(this,R.layout.view4,null);
viewList.add(view1);
viewList.add(view2);
viewList.add(view3);
viewList.add(view4);
//设置适配器
MyPagerAdapter pagerAdapter =new MyPagerAdapter(viewList,titleList);
MyFragmentPagerAdapter pagerAdapter1 =new MyFragmentPagerAdapter(getSupportFragmentManager(),fragmentList,titleList);
//加载适配器
//pager.setAdapter(pagerAdapter);
pager.setAdapter(pagerAdapter1);
//加载监听器
pager.addOnPageChangeListener(this);
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
Toast.makeText(this,position,Toast.LENGTH_SHORT).show();
}
@Override
public void onPageScrollStateChanged(int state) {
}
}