viewpager和滑动下游标
Posted buled
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了viewpager和滑动下游标相关的知识,希望对你有一定的参考价值。
先看布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/white"
android:orientation="vertical">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="@dimen/top_layout_height"
android:background="@color/top_background_color"
android:id="@+id/top_bar">
<RelativeLayout
android:id="@+id/select_city_Rlty"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@drawable/btn_red_top_selector"
android:minWidth="62.0dip">
<TextView
android:id="@+id/select_city_Tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:gravity="center"
android:text="深圳"
android:textColor="@color/white"
android:textSize="18sp" />
<ImageView
android:id="@+id/icon_small_triangle_Iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp"
android:layout_toRightOf="@+id/select_city_Tv"
android:src="@drawable/icon_home_city_down_arrow" />
</RelativeLayout>
<LinearLayout
android:id="@+id/tab_ly"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/select_city_Rlty"
android:layout_toLeftOf="@+id/search_Iv"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp">
<TextView
android:id="@+id/home"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:textColor="@drawable/bg_main_list_tv"
android:textSize="18sp"
android:padding="5dp"
android:text="首页" />
<View
android:layout_width="0.5dp"
android:layout_height="20dp"
android:layout_gravity="center_vertical"
android:background="@color/white" />
<TextView
android:id="@+id/club_card"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="@drawable/bg_main_list_tv"
android:textSize="18sp"
android:padding="5dp"
android:gravity="center"
android:text="会员卡" />
<View
android:layout_width="0.5dp"
android:layout_height="20dp"
android:layout_gravity="center_vertical"
android:background="@color/white" />
<TextView
android:id="@+id/my"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:textColor="@drawable/bg_main_list_tv"
android:textSize="18sp"
android:padding="5dp"
android:text="我的" />
</LinearLayout>
<ImageView //这里就是下游标,这个宽度一定要跟tab一样宽,而且不能自适应,不然一开始初始化移动位置的时候移动不了
android:layout_alignLeft="@+id/tab_ly"
android:layout_alignRight="@+id/tab_ly"
android:layout_alignParentBottom="true"
android:id="@+id/ii_category_selector"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="matrix"
android:src="@drawable/menu_line"
/>
<ImageView
android:id="@+id/search_Iv"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="16dp"
android:background="@drawable/btn_red_top_selector"
android:src="@drawable/btn_search_selector" />
</RelativeLayout>
<com.dld.common.view.ArcMenu
android:id="@+id/arc_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="72dp"
android:layout_marginRight="8dp"
android:visibility="gone" />-->
</LinearLayout>
2.然后看下代码,其实就是写了一个viewpeager
public class MainActivity extends BaseFragmentActivity implements OnClickListener
private static final String TAG = MainActivity.class.getSimpleName();
private static final int MAXTIME = 120000;// 倒计时最大时间
private static final int INTERVAL = 1000;// 倒计时的时间间隔
public static int curentlay = 0;
private long exitTime = 0;
// 监听HOME键
private HomeKeyEventBroadCastReceiver mHomeKeyEventBroadCastReceiver;
private ScreenBroadCastReceiver mScreenBroadCastReceiver;
private RecommendDialog mRecommendDialog;
private DldDBHelper mDldDBHelper = null;
private Dao<MovieCityData, Integer> movieCityDao;
private List<MovieCityBean> mCityList = new ArrayList<MovieCityBean>();
private ArrayList<HashMap<String, String>> mCityIdList = new ArrayList<HashMap<String, String>>();
//新
private boolean hasMeasured = false;
private float height;
private float width;
private ViewPager viewPager;
private BusinessRankAdapter pagerAdapter;
private ArrayList<Fragment> pagers;
private RelativeLayout select_city_Rlty;// 选择城市
private TextView select_city_Tv;// 选择城市
private ImageView search_Iv;// 搜索
private ImageView selector; // 下划线
private LinearLayout tab_ly;
private TextView home;// 首页
private TextView card;// 会员卡
private TextView my; // 我的
private RelativeLayout topbar;//头部
private Handler hd=new Handler()
@Override
public void handleMessage(Message msg)
super.handleMessage(msg);
initSelector();
;
@Override
protected void onCreate(Bundle savedInstanceState)
//isSlideFinish = false;
super.onCreate(savedInstanceState);
// requestWindowFeature(Window.FEATURE_NO_TITLE);// 设置无标题模式
// setContentView(R.layout.activity_main_fragment_tabs); //
// Activity样式文件,一定要写在中间
setContentView(R.layout.activity_myfragmenttest);
findViewById();
init();
setListener();
@Override
protected void findViewById()
topbar= (RelativeLayout) this.findViewById(R.id.top_bar);
select_city_Rlty = (RelativeLayout) this.findViewById(R.id.select_city_Rlty);
select_city_Tv = (TextView) this
.findViewById(R.id.select_city_Tv);
search_Iv = (ImageView) this.findViewById(R.id.search_Iv);
selector = (ImageView) this.findViewById(R.id.ii_category_selector);
tab_ly = (LinearLayout) this.findViewById(R.id.tab_ly);
ViewTreeObserver vto = tab_ly.getViewTreeObserver();//用来获取中间tab的宽度
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener()
public boolean onPreDraw()
if (hasMeasured == false)
height = tab_ly.getMeasuredHeight();
width = tab_ly.getMeasuredWidth();
//获取到宽度和高度后,可用于计算
hd.sendEmptyMessage(0);
hasMeasured = true;
return true;
);
home = (TextView) this.findViewById(R.id.home);
home.setSelected(true);
card = (TextView) this.findViewById(R.id.club_card);
my = (TextView) this.findViewById(R.id.my);
viewPager = (ViewPager) findViewById(R.id.main_vp);
viewPager.setCurrentItem(0);
/**
* 初始化下划线位置
*/
private void initSelector() //获取图片的宽度,和整个tab的宽度,(单个tab的宽度-图片的宽度)/2得到了向右边偏移多少才能到第一个tab的中心
Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.menu_line);//获取下划线图片
int bitmapWidth = bitmap.getWidth();
float left = (width/ 3 - bitmapWidth) / 2;
Matrix matrix = new Matrix();
matrix.postTranslate(left, 0);
selector.setImageMatrix(matrix);
@Override
protected void setListener()
search_Iv.setOnClickListener(this);
select_city_Rlty.setOnClickListener(this);
home.setOnClickListener(this);
card.setOnClickListener(this);
my.setOnClickListener(this);
viewPager.setOnPageChangeListener(onPageChangeListener);
@Override
protected void init()
PushAgent.getInstance(this).onAppStart();
// PushAgent.getInstance(this).enable(mRegisterCallback);
PushAgent.getInstance(this).enable();
PushAgent.getInstance(this).setPushIntentServiceClass(UmengIntentService.class);
String device_token = UmengRegistrar.getRegistrationId(MainActivity.this);
LogUtils.i(TAG, "device_token:" + device_token);
if (mDldDBHelper == null)
mDldDBHelper = DldDBHelper.getDldDBHelper(this);
try
movieCityDao = mDldDBHelper.getMovieCityDao();
catch (SQLException e)
// TODO Auto-generated catch block
e.printStackTrace();
requestCityList(); //请求电影票模块城市列表
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
intentFilter.setPriority(Integer.MAX_VALUE);// 设置优先级为最高.
MobclickAgent.setDebugMode(false);
// SDK在统计Fragment时,需要关闭Activity自带的页面统计,
// 然后在每个页面中重新集成页面统计的代码(包括调用了 onResume 和 onPause 的Activity)。
MobclickAgent.openActivityDurationTrack(false);
MobclickAgent.updateOnlineConfig(this);
initPager();
// 监听home键广播
mHomeKeyEventBroadCastReceiver = new HomeKeyEventBroadCastReceiver();
registerReceiver(mHomeKeyEventBroadCastReceiver, new IntentFilter(
Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
// 屏幕开启关闭
mScreenBroadCastReceiver = new ScreenBroadCastReceiver();
final IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_SCREEN_ON);
registerReceiver(mScreenBroadCastReceiver, filter);
SelectCityActivity.registObserver(mNotifyChangeObserver);//选择城市的监听
processSelectCityName();
/**
* viewpager添加数据
*/
private void initPager()
pagers = new ArrayList<Fragment>();
// 首页
HomeFragment HomeFragment = new HomeFragment();
pagers.add(HomeFragment);
// 会员卡
AttractionsMiserCardFragment AttractionsMiserCardFragment = new AttractionsMiserCardFragment();
pagers.add(AttractionsMiserCardFragment);
// 我的
PersonalCenterInfoFragment PersonalCenterInfoFragment = new PersonalCenterInfoFragment();
pagers.add(PersonalCenterInfoFragment);
pagerAdapter = new BusinessRankAdapter(getSupportFragmentManager(), pagers);
viewPager.setAdapter(pagerAdapter);
requestAppVersion();
/**
* viewpager滑动时间监听器
*/
private ViewPager.OnPageChangeListener onPageChangeListener = new ViewPager.OnPageChangeListener()
@Override
public void onPageSelected(int position)
home.setSelected(false);
card.setSelected(false);
my.setSelected(false);
switch (position)
case 0:
home.setSelected(true);
break;
case 1:
card.setSelected(true);
break;
case 2:
my.setSelected(true);
break;
//下划线移动
TranslateAnimation animation = new TranslateAnimation(curentlay * width / 3, position * width / 3, 0, 0);
animation.setFillAfter(true);
animation.setDuration(200);
selector.startAnimation(animation);
curentlay = position;
@Override
public void onPageScrolled(int arg0, float arg1, int arg2)
@Override
public void onPageScrollStateChanged(int arg0)
;
@Override
public void onClick(View v)
switch (v.getId())
case R.id.home:
viewPager.setCurrentItem(0);
break;
case R.id.club_card:
viewPager.setCurrentItem(1);
break;
case R.id.my:
viewPager.setCurrentItem(3);
break;
case R.id.select_city_Rlty://选择城市
Intent intent = new Intent(this, SelectCityActivity.class);
intent.putExtra("flag", "HomeFragment");
startActivity(intent);
break;
case R.id.search_Iv://搜索
Intent intentx = new Intent(this, SearchActivity.class);
startActivity(intentx);
break;
/**
* @Description:[刷新选择的城市]
*/
public void processSelectCityName()
String cityName = PreferencesUtils.getString(this,
AppConfig.CITY_NAME);
if (!StringUtils.isBlank(cityName))
select_city_Tv.setText(cityName);
SelectCityActivity.NotifyChangeObserver mNotifyChangeObserver = new SelectCityActivity.NotifyChangeObserver()
@Override
public void onChangeCity(String cityId, String cityName)
LogUtils.e(TAG, "cityId:" + cityId + " cityName:" + cityName);
processSelectCityName();
;
public Handler handler = new Handler();
public IUmengRegisterCallback mRegisterCallback = new IUmengRegisterCallback()
@Override
public void onRegistered(String registrationId)
// TODO Auto-generated method stub
handler.post(new Runnable()
@Override
public void run()
// TODO Auto-generated method stub
updateStatus();
);
;
private void updateStatus()
String pkgName = getApplicationContext().getPackageName();
String info = String.format("enabled:%s isRegistered:%s DeviceToken:%s",
PushAgent.getInstance(this).isEnabled(), PushAgent.getInstance(this).isRegistered(),
PushAgent.getInstance(this).getRegistrationId());
LogUtils.i(TAG, "应用包名:" + pkgName + "\\n" + info + "updateStatus:" + String.format("enabled:%s isRegistered:%s",
PushAgent.getInstance(this).isEnabled(), PushAgent.getInstance(this).isRegistered()));
LogUtils.i(TAG, "=============================");
;
@Override
protected void onResume()
super.onResume();
LocationUtil.getInstance().start();
LogUtils.d(TAG, "定位开启...............................");
MobclickAgent.onPageStart(TAG);
MobclickAgent.onResume(this);
@Override
public void onPause()
super.onPause();
MobclickAgent.onPageEnd(TAG);
MobclickAgent.onPause(this);
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
if (keyCode == KeyEvent.KEYCODE_BACK
&& event.getAction() == KeyEvent.ACTION_DOWN)
// if (mArcMenu.isShown())
// mArcMenu.fold();
// return true;
//
if (curentlay == 0) // 首页时候才会触发退出事件
appExit();
else
curentlay = 0;
// currentTabByTag(curentlay);
viewPager.setCurrentItem(curentlay);
return true;
return super.onKeyDown(keyCode, event);
/**
* @description 请求网络检查版本是否有新版本
*/
private void requestAppVersion()
EncryptGetRequest req = new EncryptGetRequest(Urls.CHECK_VERSION_URL,
new Response.Listener<JSONObject>()
@Override
public void onResponse(JSONObject response)
if (response != null)
CheckVersionResBean mCheckVersionResBean = CheckVersionResBean
.parse(response);
LogUtils.i(TAG, mCheckVersionResBean.toString());
processCheckVersion(mCheckVersionResBean);
, new Response.ErrorListener()
@Override
public void onErrorResponse(VolleyError error)
LogUtils.e(TAG, "VolleyError: " + error);
);
BaseApplication.getInstance().addToRequestQueue(req);
LogUtils.i(TAG, req.getUrl());
/**
* @Description:[检查版本更新]
*/
private void processCheckVersion(CheckVersionResBean mCheckVersionResBean)
// 对比当前软件的version和网站的version
int now_version = AppInfoUtil.getVersionCode(MainActivity.this);
String version = mCheckVersionResBean.getVersion();
if (!StringUtils.isBlank(version))
int net_version = Integer.parseInt(version);
LogUtils.i(TAG, "net_version==" + net_version + " now_version="
+ now_version);
if (now_version < net_version) // 有新版本,需要升级
PreferencesUtils.putBoolean(getApplicationContext(),
"isVersionUpdates", true);
// new_version_caution_Iv.setVisibility(View.VISIBLE);
// 出现提示对话框
initAlertDialog(mCheckVersionResBean);
else
// new_version_caution_Iv.setVisibility(View.GONE);
PreferencesUtils.putBoolean(getApplicationContext(),
"isVersionUpdates", false);
/**
* @param mCheckVersionResBean
* @Description:[弹出版本更新的提示]
*/
private void initAlertDialog(final CheckVersionResBean mCheckVersionResBean)
AlertDialog dialog = new AlertDialog.Builder(this)
.setTitle("版本更新提示")
.setMessage(mCheckVersionResBean.getNote())
.setPositiveButton("确定", new DialogInterface.OnClickListener()
@Override
public void onClick(DialogInterface dialog, int which)
Intent intent = new Intent();
intent.putExtra("url", mCheckVersionResBean.getUrl());
intent.setClass(MainActivity.this, UpdateService.class);
MainActivity.this.startService(intent);
)
.setNegativeButton("取消", new DialogInterface.OnClickListener()
@Override
public void onClick(DialogInterface dialog, int which)
).create();
dialog.show();
@Override
protected void onStop()
super.onStop();
// 退出程序
private void appExit()
if ((System.currentTimeMillis() - exitTime) > 2000)
showShortToast("再按一次返回键退出程序");
exitTime = System.currentTimeMillis();
else
PreferencesUtils.putInt(getApplicationContext(), "setCurrendIndex",
0);
AppManager.getAppManager().AppExit(getApplicationContext());
finish();
System.exit(0);
@Override
public void onDestroy()
super.onDestroy();
// ((BitmapDrawable) blurView.getDrawable()).getBitmap().recycle();
unregisterReceiver(mHomeKeyEventBroadCastReceiver);
unregisterReceiver(mScreenBroadCastReceiver);
LocationUtil.getInstance().stop();
/**
* HOME键
*/
class HomeKeyEventBroadCastReceiver extends BroadcastReceiver
static final String SYSTEM_REASON = "reason";
static final String SYSTEM_HOME_KEY = "homekey";// home key
static final String SYSTEM_RECENT_APPS = "recentapps";// long home key
@Override
public void onReceive(Context context, Intent intent)
String action = intent.getAction();
if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS))
String reason = intent.getStringExtra(SYSTEM_REASON);
if (reason != null)
if (reason.equals(SYSTEM_HOME_KEY))
LogUtils.d(TAG, "定位关闭.............................");
LocationUtil.getInstance().stop();
LogUtils.d(TAG, "HOME键...");
/**
* 屏幕关闭
*/
class ScreenBroadCastReceiver extends BroadcastReceiver
@Override
public void onReceive(Context context, Intent intent)
final String action = intent.getAction();
if (Intent.ACTION_SCREEN_ON.equals(action))
LogUtils.d(TAG, "屏幕开启...");
else if (Intent.ACTION_SCREEN_OFF.equals(action))
LogUtils.d(TAG, "定位关闭.............................");
LocationUtil.getInstance().stop();
LogUtils.d(TAG, "屏幕关闭...");
/**
* 检查登录状态
*
* @param userInfos 用户bean
* @return true:已登录/false:未登录
*/
private boolean checkLoginState(User userInfos)
if (userInfos == null
|| (userInfos != null && StringUtils
.isBlank(userInfos.username)))
return false;
else
return true;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
super.onActivityResult(requestCode, resultCode, data);
// 从登录界面跳转过来,开始验证是否激活了voip
// if (requestCode == Constant.LOGIN_FOR_VOIP_REQUEST_CODE
// && resultCode == RESULT_OK)
// new Handler().postDelayed(new Runnable()
//
// @Override
// public void run()
// mArcMenu.getOnItemClickListener().onItemClick(0);
//
// , 500);
//
/**
* @Description:[请求城市列表]
*/
public void requestCityList()
EncryptGetRequest req = new EncryptGetRequest(Urls.MOVIE_CITY_LIST_URL, new Response.Listener<JSONObject>()
@Override
public void onResponse(JSONObject response)
dismissProgressDialog();
if (response != null)
MovieCityBean movieCityBean = MovieCityBean.parse(response);
if (movieCityBean != null)
filledData(movieCityBean);
, new Response.ErrorListener()
@Override
public void onErrorResponse(VolleyError error)
LogUtils.e(TAG, "VolleyError: " + error);
);
BaseApplication.getInstance().addToRequestQueue(req, this);
LogUtils.i(TAG, "req.getUrl(): " + req.getUrl());
private void filledData(MovieCityBean movieCityBean)
MovieCityBean cityBean = null;
LinkedHashMap<String, HashMap<String, String>> citiesMap = movieCityBean.cities;
if (citiesMap != null)
try
mDldDBHelper.cleanMovieCityDataTable(); //清空表中原有数据
catch (SQLException e)
e.printStackTrace();
// 添加城市
for (Iterator iterator = citiesMap.entrySet().iterator(); iterator.hasNext(); )
Map.Entry<String, HashMap<String, String>> entry = (Map.Entry<String, HashMap<String, String>>) iterator.next();
// 添加城市ID 名字
for (Iterator iterator2 = entry.getValue().entrySet().iterator(); iterator2.hasNext(); )
Map.Entry<String, String> entry2 = (Map.Entry<String, String>) iterator2.next();
cityBean = new MovieCityBean();
cityBean.setCityName(entry2.getValue());
cityBean.setCitykey(entry2.getKey());
if (StringUtils.isBlank(entry.getKey()))
cityBean.setSortLetters("#");
else
cityBean.setSortLetters(entry.getKey());
try
insertData(cityBean);
catch (SQLException e)
// TODO Auto-generated catch block
e.printStackTrace();
private void insertData(MovieCityBean cityBean) throws SQLException
MovieCityData mMovieCityData = new MovieCityData();
mMovieCityData.setCityName(cityBean.getCityName());
mMovieCityData.setCityCode(cityBean.getCitykey());
mMovieCityData.setSortLetters(cityBean.getSortLetters());
mMovieCityData.setType(AppConfig.CITY_NORMAL);
movieCityDao.create(mMovieCityData);
/**
* @Description:[显示分享弹框]
*/
private void showShareDialog(String userId)
if (mRecommendDialog == null)
mRecommendDialog = new RecommendDialog(this, R.style.ShareDialog);
if (!mRecommendDialog.isShowing())
mRecommendDialog.showRequestDialog(userId, "这个软件可以查到很全的打折促销哦!", "");
这个是其中一个fragment的代码
public class AttractionsMiserCardFragment extends BaseFragment
private String TAG = AttractionsMiserCardActivity.class.getSimpleName();
private Activity mActivity;
private View layoutView;
private ListView card_list;
private CardListAdapter cardlistadapter;
private String[] name = new String[]"会员卡简介", "办卡须知", "在线激活", "会员卡使用说明", "购卡电话:";
private String[] url = new String[]"http://m.dld.com/index.php?act=cheapskate&op=instruction", "http://m.dld.com/index.php?act=cheapskate&op=characteristic", "http://card.dldpay.com/carderWeb/activateOnlineMobile.jsp", "http://m.dld.com/index.php?act=cheapskate&op=instructions","tel:400-0088-114";
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
if (layoutView == null)
layoutView = inflater.inflate(R.layout.activity_attractions_fragment, container, false); // 加载fragment布局
findViewById();
init();
setListener();
// 缓存的rootView需要判断是否已经被加过parent,
// 如果有parent需要从parent删除,要不然会发生这个rootview已经有parent的错误。
ViewGroup parent = (ViewGroup) layoutView.getParent();
if (parent != null)
parent.removeView(layoutView);
return layoutView;
@Override
public void onResume()
super.onResume();
MobclickAgent.onResume(mActivity);
MobclickAgent.onPageStart(TAG);
@Override
public void onPause()
super.onPause();
MobclickAgent.onPause(mActivity);
MobclickAgent.onPageEnd(TAG);
@Override
protected void findViewById()
card_list = (ListView) layoutView.findViewById(R.id.card_list);
@Override
protected void setListener()
card_list.setOnItemClickListener(new AdapterView.OnItemClickListener()
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
if (position!=4)
Intent intent = new Intent(mActivity, AttractionsMiserCardActivity.class);
intent.putExtra("url",url[position]);
if (position!=2)
intent.putExtra("card", true);
mActivity.startActivity(intent);
else
Intent intent2 = new Intent();
//系统默认的action,用来打开默认的电话界面
intent2.setAction(Intent.ACTION_DIAL);
intent2.setData(Uri.parse(url[position]));
mActivity.startActivity(intent2);
);
@Override
protected void init()
cardlistadapter = new CardListAdapter(mActivity, name);
card_list.setAdapter(cardlistadapter);
private class CardListAdapter extends BaseAdapter
private String[] list;
private Context mContext;
public CardListAdapter(Context context, String[] list)
this.list = list;
this.mContext = context;
@Override
public int getCount()
return this.list.length;
@Override
public Object getItem(int position)
return list[position];
@Override
public long getItemId(int position)
return position;
@Override
public View getView(int position, View convertView, ViewGroup parent)
ViewHolder viewHolder = null;
if (convertView == null)
viewHolder = new ViewHolder();
convertView = LayoutInflater.from(mContext).inflate(R.layout.item_card_fragment, null);
viewHolder.log = (ImageView) convertView.findViewById(R.id.logo_Iv);
viewHolder.name_Tv = (TextView) convertView.findViewById(R.id.name_tv);
viewHolder.tel_Tv = (TextView) convertView.findViewById(R.id.tel_Tv);
convertView.setTag(viewHolder);
else
viewHolder = (ViewHolder) convertView.getTag();
viewHolder.tel_Tv.setVisibility(View.GONE);
String name = list[position];
if (!StringUtils.isBlank(name))
if (position == 4)
viewHolder.tel_Tv.setVisibility(View.VISIBLE);
else
viewHolder.name_Tv.setText(name);
switch (position)
case 0:
viewHolder.log.setImageResource(R.drawable.icon_car_1);
break;
case 1:
viewHolder.log.setImageResource(R.drawable.icon_car_2);
break;
case 2:
viewHolder.log.setImageResource(R.drawable.icon_car_3);
break;
case 3:
viewHolder.log.setImageResource(R.drawable.icon_car_4);
break;
case 4:
viewHolder.log.setImageResource(R.drawable.icon_car_5);
break;
return convertView;
public class ViewHolder
ImageView log;
TextView name_Tv;
TextView tel_Tv;
@Override
public void onAttach(Activity activity)
super.onAttach(activity);
mActivity = getActivity();
//Log.d(TAG, "onAttach");
最后是我们的viewpagers的adapter
public class BusinessRankAdapter extends FragmentPagerAdapter
private ArrayList<Fragment> pagers;
public BusinessRankAdapter(FragmentManager fm, ArrayList<Fragment> list)
super(fm);
this.pagers = list;
@Override
public int getCount()
return pagers.size();
@Override
public Fragment getItem(int arg0)
return pagers.get(arg0);
以上是关于viewpager和滑动下游标的主要内容,如果未能解决你的问题,请参考以下文章
Android ViewPager嵌套ViewPager滑动冲突处理方法