效果图:
用到的技术大体上就是标题讲的那几个。
ViewPager简单来说就是一个图片切换器,可以把图片换成Fragment:
viewPager=(ViewPager) findViewById(R.id.viewpager);
viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager())
{
@Override
public int getCount()
{
// TODO Auto-generated method stub
return 3;
}
@Override
public Fragment getItem(int arg0)
{
// TODO Auto-generated method stub
if(arg0==0)
return fragment1;
else if(arg0==1)
return fragment2;
else if(arg0==2)
return fragment3;
else {
return null;
}
}
});
viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener()
{
@Override
public void onPageSelected(int position)
{
// TODO Auto-generated method stub
actionBar.setSelectedNavigationItem(position);
}
});
ActionBar添加Tab:
actionBar=getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
for(int i=0;i<3;i++)
{
ActionBar.Tab tab=actionBar.newTab();
if(i==0)
tab.setText("动漫资讯");
else if(i==1)
tab.setText("体育快报");
else if(i==2)
tab.setText("娱乐周边");
tab.setTabListener(new MyTabListener());
actionBar.addTab(tab);
}
class MyTabListener implements TabListener
{
@Override
public void onTabReselected(Tab arg0, FragmentTransaction arg1)
{
// TODO Auto-generated method stub
}
@Override
public void onTabSelected(Tab arg0, FragmentTransaction arg1)
{
// TODO Auto-generated method stub
viewPager.setCurrentItem(arg0.getPosition());
}
@Override
public void onTabUnselected(Tab arg0, FragmentTransaction arg1)
{
// TODO Auto-generated method stub
}
}
ListView的进一步使用:
listview.setFooterView(View v);
listview.setAdapter(adapter);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener()
listView.setOnScrollListener(new AbsListView.OnScrollListener()
{
@Override
public void onScrollStateChanged(AbsListView arg0, int arg1)
{
// TODO Auto-generated method stub
}
@Override
public void onScroll(AbsListView arg0, int firstVisibleItem, int visibleItemCount, int totalItemCount)
{
// TODO Auto-generated method stub
if(firstVisibleItem+visibleItemCount==totalItemCount)
{
if(mThread==null || !mThread.isAlive())//网络线程空闲
{
if(flag)//数据库还有数据可以取
{
Log.d("aaaaaa", "get more!!!!");
cur_item+=4;
listView.addFooterView(loadLayout);
mThread=new NetThread();//开启新的网络线程去获取新的内容刷新列表
mThread.start();
}
}
}
}
});