xml的用法
<com.astuetz.pagerslidingtabstrip.PagerSlidingTabStripExtends
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_tabs"
android:layout_width="match_parent"
android:layout_height="48dp"
//底部移动小矩形的颜色app:pstsIndicatorColor="@color/tab_indicator_selected"
//底部移动小矩形的高
app:pstsIndicatorHeight="8dp"
//字体被那种时额颜色app:pstsSelecterTabTextColor="@color/tab_text_selected"
//字体的被选择时的大小
app:pstsSelecterTabTextSize="18sp"
//默认字体颜色
app:pstsTabTextColor="@color/tab_text_normal"
//默认字体大小
app:pstsTabTextSize="16sp" >
</com.astuetz.pagerslidingtabstrip.PagerSlidingTabStripExtends>
代码设置
mAdapter = new MainFragmentStatePagerAdapter(getSupportFragmentManager());
mMainViewpager.setAdapter(mAdapter);
mMainTabs.setViewPager(mMainViewpager);
mMainTabs.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
BaseFragment mFragment = FragmentFactory.getFragment(position);
if (mFragment != null)
mFragment.getLoadingPager().loadData();
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
class MainFragmentStatePagerAdapter extends FragmentStatePagerAdapter {
public MainFragmentStatePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Fragment fragment = FragmentFactory.getFragment(position);
LogUtils.sf("初始化 " + mMainTitles[position]);
return fragment;
}
@Override
public int getCount() {
if (mMainTitles != null) {
return mMainTitles.length;
}
return 0;
}
@Override
public CharSequence getPageTitle(int position) {
return mMainTitles[position];
}
}
LogUtils的设置
可以在mylibrary的com.mylibrary.config.Constants这个类中设置整个应用是否输出log信息
/**
* 输出所有的日志
*/
public static int DEBUGLEVEL= LogUtils.LEVEL_ALL;
/**
*关闭输出所有的日志
*/
public static int DEBUGLEVEL= LogUtils.LEVEL_OFF;
BaseFragment用法
先建一个工厂类
public class FragmentFactory {
public static final int FRAGMENT_HOME = 0;
public static final int FRAGMENT_APP = 1;
public static final int FRAGMENT_GAME = 2;
public static final int FRAGMENT_SUBJECT = 3;
public static final int FRAGMENT_RECOMMEND = 4;
public static final int FRAGMENT_CATEGORY = 5;
public static final int FRAGMENT_HOT = 6;
static SparseArrayCompat<BaseFragment> cachesFragment = new SparseArrayCompat<BaseFragment>();
public static BaseFragment getFragment(int position) {
BaseFragment fragment = null;
BaseFragment tmpFragment = cachesFragment.get(position);
if (tmpFragment != null) {
fragment = tmpFragment;
return fragment;
}
switch (position) {
case FRAGMENT_HOME:
fragment = new HomeFragment();
break;
case FRAGMENT_APP:
fragment = new AppFragment();
break;
}
cachesFragment.put(position, fragment);
return fragment;
}
}
在Fragment中的代码
public class AppFragment extends BaseFragment {
@Override
public LoadingPager.LoadedResult initData() {
return LoadingPager.LoadedResult.SUCCESS;
}
@Override
public View initSuccessView() {
TextView tv=new TextView(UIUtils.getContext());
tv.setText("1111111111111");
return tv;
}
}
在activity中代码
public class MainActivity extends FragmentActivity {
private MainFragmentPagerAdapter mAdapter;
@ViewInject(R.id.vp)
ViewPager tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewUtils.inject(this);
mAdapter = new MainFragmentPagerAdapter(getSupportFragmentManager());
tv.setAdapter(mAdapter);
tv.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
BaseFragment mFragment = FragmentFactory.getFragment(position);
if (mFragment != null)
mFragment.getLoadingPager().loadData();
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
class MainFragmentPagerAdapter extends FragmentStatePagerAdapter {
public MainFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return FragmentFactory.getFragment(position);
}
@Override
public int getCount() {
return 2;
}
}
}
PictureHolder无限轮播图使用方法
//例子
List<String> datas=new ArrayList<>();
datas.add("http://127.0.0.1:8090/image?name=image/home01.jpg");
datas.add("http://127.0.0.1:8090/image?name=image/home02.jpg");
datas.add("http://127.0.0.1:8090/image?name=image/home03.jpg");
//初始化的时候必须为PictrueHolder<List<String>>或PictrueHolder<List<Integer>>
PictrueHolder<List<String>> holder=new PictrueHolder();
//datas为数据源List<String>为网络图片链接数据List<Integer>本地图片资源
holder.setDataAndRefreshHolderView(datas);
//mFl为防止轮播图的容器
mFl.addView(holder.getHolderView());