pulltorefresh+viewpager fragment+HorizontalScrollView

来源:互联网 发布:淘宝上买的弹弓枪 编辑:程序博客网 时间:2024/06/05 05:42

import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity{
    private ViewPager vp;
    private HorizontalScrollView hsv;
    private LinearLayout ll;
    private String[] titles;
    private List<TextView> list;
    private MyVPAdapter myVPAdapter;
    String baseUrl = "http://gank.io/api/data/";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化获取id
        initView();
        FragmentManager supportFragmentManager = getSupportFragmentManager();
        myVPAdapter = new MyVPAdapter(supportFragmentManager);
        vp.setAdapter(myVPAdapter);
        //监听
        vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                for(int i=0;i<list.size();i++){
                    if(position==i){
                        list.get(i).setTextColor(Color.RED);


                    }else{
                        list.get(i).setTextColor(Color.BLACK);
                    }
                    //获取textview
                    TextView textView = list.get(position);
                    int width = textView.getWidth() + 10;
                    hsv.scrollTo(width*position,0);
                }
            }

            @Override
            public void onPageSelected(int position) {


            }


            @Override
            public void onPageScrollStateChanged(int state) {


            }
        });
    }

    private void initView() {
        vp = (ViewPager) findViewById(R.id.vp);
        hsv = (HorizontalScrollView) findViewById(R.id.hsv);
        ll = (LinearLayout) findViewById(R.id.ll);
        //创建数组
        titles = new String[]{"福利","Android","iOS","休息","视频","拓展","资源前端","all"};
        //创建集合存放textview
        list = new ArrayList<>();
        //创建TextView
        for(int i=0;i<titles.length;i++){
            //创建textview
            TextView textView = new TextView(MainActivity.this);
            textView.setText(titles[i]);
            textView.setTextSize(20);
            textView.setId(i+1000);
            //点击事件
            textView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    int id = view.getId();
                    vp.setCurrentItem(id-1000);
                }
            });
            //设置初始化
            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);
            //添加到布局中
            ll.addView(textView,layoutParams);
            //添加到集合
            list.add(textView);


        }
    }


    //viewpager的适配器
    class MyVPAdapter extends FragmentPagerAdapter{


        public MyVPAdapter(FragmentManager fm) {
            super(fm);
        }


        @Override
        public Fragment getItem(int position) {
            return Fragment1.getins(baseUrl+ URLEncoder.encode(titles[position])+"/");
        }


        @Override
        public int getCount() {
            return list.size();
        }
    }

}





import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.bawei.wzq.wzlibrary.utils.NetWorkUtil;
import com.bwie.skn.songkenan20170918.R;
import com.bwie.skn.songkenan20170918.bean.Bean2;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.nostra13.universalimageloader.core.ImageLoader;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;


public class Fragment1 extends Fragment{
    private View view;
    private PullToRefreshListView pullToRefreshListView;
    private String url;
    private int i = 1;
    private List<Bean2> list;
    private MAdapter mAdapter;


    public static Fragment1 getins(String title){
        Fragment1 fragment1 = new Fragment1();
        Bundle bundle = new Bundle();
        bundle.putString("title",title);
        Log.e("wzq", "getins: ");
        fragment1.setArguments(bundle);
        return fragment1;
    }
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.pulltorefreshlistview,container,false);
        return view;
    }


    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        Bundle arguments = getArguments();
        url = arguments.getString("title");


        pullToRefreshListView = (PullToRefreshListView)view.findViewById(R.id.pulltorefreshlistview);
        pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);


        list = new ArrayList<>();
        mAdapter = new MAdapter();
        pullToRefreshListView.setAdapter(mAdapter);
        new MyAsyncTask().execute(url+"10/1");


        pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                list.clear();
                i = 1;
                new MyAsyncTask().execute(url+"10/1");
            }


            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                i++;
                new MyAsyncTask().execute(url+"10/"+i);
            }
        });


    }


    class MyAsyncTask extends AsyncTask<String,Void,String>{


        @Override
        protected String doInBackground(String... strings) {
            String string = new NetWorkUtil().getNetString(strings[0]);
            return string;
        }


        @Override
                protected void onPostExecute(String s) {
                    super.onPostExecute(s);
                   try {


                        JSONObject jsonObject = new JSONObject(s);
                        JSONArray results = jsonObject.optJSONArray("results");
                        for (int i =0;i<results.length();i++){
                            JSONArray images = results.optJSONObject(i).optJSONArray("images");
                            if (images!=null){
                                list.add(new Bean2(results.optJSONObject(i).optString("desc"),(String)images.get(0)));
                            }


                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
            }
            mAdapter.notifyDataSetChanged();
            pullToRefreshListView.onRefreshComplete();


        }
    }


    //适配器
    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;
        }


        class ViewHowder{
            TextView text;
            ImageView img;
        }
        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            int type = getItemViewType(i);
            Log.e("SKN--------------",list.get(i).getText()+"++++"+list.get(i).getImg());
            ViewHowder vh;
            if(type==0){
                if(view==null){
                    view = View.inflate(getActivity(),R.layout.pulllv_item_layout,null);
                    vh = new ViewHowder();
                    vh.img=(ImageView) view.findViewById(R.id.img);
                    vh.text=(TextView)view.findViewById(R.id.text);
                    view.setTag(vh);
                }else{
                    vh = (ViewHowder) view.getTag();
                }
                    vh.text.setText(list.get(i).getText());
                    ImageLoader.getInstance().displayImage(list.get(i).getImg(),vh.img);
            }
            return view;
        }


        @Override
        public int getViewTypeCount() {
            return 2;
        }


        @Override
        public int getItemViewType(int position) {
            Bean2 bean2 = list.get(position);
            if (bean2.getImg()!=null){
                return 0;
            }else{
                return 1;
            }
        }
    }










}




阅读全文
0 0