public class MainActivity extends FragmentActivity implements View.OnClickListener{
private ViewPager vp;
private String[] title;
private ArrayList<TextView> textList;
LinearLayout llHead;
private HorizontalScrollView hs;
private FragmentAdapte adapte;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取控件
llHead=(LinearLayout)findViewById(R.id.llHead);
vp=(ViewPager)findViewById(R.id.vp);
hs=(HorizontalScrollView)findViewById(R.id.hs);
title = new String[]{"福利", "Android", "ios", "休息视频", "拓展资源", "前段", "all"};
textList = new ArrayList<>();
//动态添加textview
for(int i=0;i<title.length;i++){
final TextView textView = new TextView(MainActivity.this);
textView.setText(title[i]);
textView.setTextSize(20);
textView.setId(i+1000);
textView.setOnClickListener(this);
if(i==0){
textView.setTextColor(Color.RED);
}else{
textView.setTextColor(Color.BLACK);
}
//设置参数
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(20,10,20,10);
//添加view的时候,用参数;
llHead.addView(textView,layoutParams);
textList.add(textView);
adapte = new FragmentAdapte(getSupportFragmentManager());
vp.setAdapter(adapte);
//设置监听
vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
for (int i = 0; i < textList.size(); i++) {
if (position == i) {
textList.get(i).setTextColor(Color.RED);
} else {
textList.get(i).setTextColor(Color.BLACK);
}
}
//让scrollView滑动
TextView textView = textList.get(position);
//20为margin值;
int width = textView.getWidth();
hs.scrollTo((width+20)*position,0);
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
}
//加载数据
class FragmentAdapte extends FragmentPagerAdapter{
public FragmentAdapte(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return MFragment1.getFrag(position);
}
@Override
public int getCount() {
return textList.size();
}
}
//重写的点击方法
@Override
public void onClick(View v) {
int id = v.getId();
vp.setCurrentItem(id-1000);
}
}
fragment
public class MFragment1 extends Fragment implements XListView.IXListViewListener{
@BindView(R.id.xl)
com.example.xx.xlist_library.view.XListView xl;
Unbinder unbinder;
private View view;
List<User.ResultsBean> list = new ArrayList<>();
private MAdapter adapter;
int b=1;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.f1, container, false);
initData();
unbinder = ButterKnife.bind(this, view);
xl.setPullLoadEnable(true);
adapter = new MAdapter();
xl.setXListViewListener(this);
return view;
}
public static Fragment getFrag(int position){
MFragment1 frag = new MFragment1();
Bundle bundle = new Bundle();
bundle.putInt("position",position);
frag.setArguments(bundle);
return frag;
}
private void initData() {
new MAsyncTask().execute("http://gank.io/api/data/%E7%A6%8F%E5%88%A9/10/"+b);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@Override
public void onRefresh() {
b++;
initData();
xl.setAdapter(adapter);
onLoad();
}
@Override
public void onLoadMore() {
b++;
initData();
adapter.notifyDataSetChanged();
onLoad();
}
class MAsyncTask extends AsyncTask<String,Void,String>{
@Override
protected String doInBackground(String... strings) {
return new NewWorkUtil().getJson(strings[0]);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
User user = gson.fromJson(s, User.class);
list = user.getResults();
xl.setAdapter(adapter);
}
}
class MAdapter extends BaseAdapter {
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return list.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder vh;
if(view==null){
vh=new ViewHolder();
view=View.inflate(getActivity(),R.layout.lv,null);
vh.img=view.findViewById(R.id.img);
vh.tv=view.findViewById(R.id.tv);
view.setTag(vh);
}else{
vh= (ViewHolder) view.getTag();
}
vh.tv.setText(list.get(i).getType());
DisplayImageOptions options = new DisplayImageOptions.Builder()
//默认机器人
.showImageOnLoading(R.mipmap.ic_launcher)
.showImageOnFail(R.mipmap.ic_launcher)
.bitmapConfig(Bitmap.Config.RGB_565)
.build();
ImageLoader.getInstance().displayImage(list.get(i).getUrl(),vh.img,options);
return view;
}
}
class ViewHolder{
TextView tv;
ImageView img;
}
private void onLoad() {
xl.stopRefresh();
xl.stopLoadMore();
xl.setRefreshTime("刚刚");
}
@Override
public void onDestroyView() {
super.onDestroyView();
unbinder.unbind();
}
}