MyLibrary帮助文档

PagerSlidingTabStripExtends的用法


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);
//tabs和viewpager绑定
mMainTabs.setViewPager(mMainViewpager);
mMainTabs.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

@Override
public void onPageSelected(int position) {
    //此处完成各个界面数据的加载
    //得到第position个位置的Fragment(此处为可更改代码)
    BaseFragment mFragment = FragmentFactory.getFragment(position);
    if (mFragment != null)
        mFragment.getLoadingPager().loadData();
}

@Override
public void onPageScrollStateChanged(int state) {

}
});

//给mMainViewpager设fragment的时候要实现getPageTitle方法,否则将会空指针
//给Viewpager设置fragment设置adapter的3中方法
//  class MainPagerAdapter extends PagerAdapter {
//
//      @Override
//      public int getCount() {
//          if (mMainTitles != null)
//              return mMainTitles.length;
//          return 0;
//      }
//
//      @Override
//      public boolean isViewFromObject(View view, Object object) {
//          return view==object;
//      }
//
//      @Override
//      public Object instantiateItem(ViewGroup container, int position) {
//          TextView tv=new TextView(UIUtils.getContext());
//          tv.setText(mMainTitles[position]);
//          container.addView(tv);
//          return tv;
//      }
//
//      @Override
//      public void destroyItem(ViewGroup container, int position, Object object) {
//          container.removeView((View) object);
//      }
//
//      @Override
//      public CharSequence getPageTitle(int position) {
//          return mMainTitles[position];
//      }
//  }
//创建过fragment后就会存入缓存,fragment很少的时候适合用此方法
//  class MainFragmentPagerAdapter extends FragmentPagerAdapter{
//
//      public MainFragmentPagerAdapter(FragmentManager fm) {
//          super(fm);
//      }
//
//      @Override
//      public Fragment getItem(int position) {
//          return FragmentFactory.getFragment(position);
//      }
//
//      @Override
//      public int getCount() {
//          if (mMainTitles != null)
//              return mMainTitles.length;
//          return 0;
//      }
//
//      @Override
//      public CharSequence getPageTitle(int position) {
//          return mMainTitles[position];
//      }
//  }
//只创建两个,是Fragment发生变化就创建
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;
        // 如果缓存里面有对应的fragment,就直接取出返回

        BaseFragment tmpFragment = cachesFragment.get(position);
        if (tmpFragment != null) {
            fragment = tmpFragment;
            return fragment;
        }
        switch (position) {
            case FRAGMENT_HOME:// 主页
            //自己的HomeFragment继承baseFragment
                fragment = new HomeFragment();
                break;
            case FRAGMENT_APP:// 应用
                fragment = new AppFragment();
                break;
//          case FRAGMENT_GAME:// 游戏
//              fragment = new GameFragment();
//              break;
//          case FRAGMENT_SUBJECT:// 专题
//              fragment = new SubjectFragment();
//              break;
//          case FRAGMENT_RECOMMEND:// 推荐
//              fragment = new RecommendFragment();
//              break;
//          case FRAGMENT_CATEGORY:// 分类
//              fragment = new CategoryFragment();
//              break;
//          case FRAGMENT_HOT:// 排行
//              fragment = new HotFragment();
//              break;

        }
        // 保存对应的fragment
        cachesFragment.put(position, fragment);
        return fragment;
    }
}
在Fragment中的代码
public class AppFragment extends BaseFragment {
    @Override
    public LoadingPager.LoadedResult initData() {
        //判断加载的数据的结果。根据不同结果显示不同的界面
        //具体的结果详见LoadingPager.LoadedResult
        return LoadingPager.LoadedResult.SUCCESS;
    }

    @Override
    public View initSuccessView() {
       // 添加自己的view
        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) {
             //此处完成各个界面数据的加载
             //得到第position个位置的Fragment(此处为可更改代码)
             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());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值