横向滑动切换

horizontal布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <HorizontalScrollView
        android:id="@+id/hsview"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="#00eeff">

        <LinearLayout
            android:id="@+id/linear_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:orientation="horizontal"></LinearLayout>
    </HorizontalScrollView>

    <android.support.v4.view.ViewPager
        android:id="@+id/zhuye_viewpager"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="9"></android.support.v4.view.ViewPager>
</LinearLayout>

MainFragment页面

public class MainFragment extends Fragment{
    private String title;

    private PullToRefreshListView refreshListView;
    private List<MyData.ResultBean.DataBean> mlist = new ArrayList<MyData.ResultBean.DataBean>();
    String uri = "tt";
    String path = "http://result.eolinker.com/k2BaduF2a6caa275f395919a66ab1dfe4b584cc60685573?uri=" + uri + "";
    private MyData myData;
    private MyAdapter pullAdapter;

    public static Fragment getinstance(String title){
        MainFragment mainFragment = new MainFragment();
        Bundle bundle = new Bundle();
        bundle.putString("title",title);
        mainFragment.setArguments(bundle);
        return mainFragment;
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        Bundle arguments = getArguments();
        title = arguments.getString("title");
       /* TextView textView = new TextView(getActivity());
        textView.setText(title);*/
        refreshListView = new PullToRefreshListView(getActivity());
        refreshListView.setMode(PullToRefreshBase.Mode.BOTH);
        refreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                uri = "tt";
                mlist.clear();
                initData();
            }
            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                uri ="gn";
                initData();
            }
        });
        if (title.equals("ANDROID")){
           uri = "tt";
            initData();
        }else if(title.equals("IOS")){
            uri = "shehui";
            initData();
        }else if(title.equals("福利")){
            uri = "gn";
            initData();
        }
        return refreshListView;
    }

    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        initData();
    }

    private void initData() {
        new MyTask<String>(getActivity(),path,"GET").setTaskListener(new MyTask.TaskListener() {
            @Override
            public void result(String t) {
                //Log.i("aa", "result: "+t);
                Gson gson = new Gson();
                myData = gson.fromJson(t, MyData.class);
                List<MyData.ResultBean.DataBean> dataBeans = myData.getResult().getData();
                mlist.addAll(dataBeans);
                if (pullAdapter==null){
                    pullAdapter = new MyAdapter(getActivity(), mlist);
                    refreshListView.setAdapter(pullAdapter);
                    pullAdapter.notifyDataSetChanged();
                }else{
                    pullAdapter.notifyDataSetChanged();
                }
                refreshListView.onRefreshComplete();
            }
        }).execute();


    }
}

Fragment页面

public class ZhuyeFragment extends Fragment {
    private HorizontalScrollView hsview;
    private LinearLayout linear_layout;
    private ViewPager zhuye_viewpager;
    private String[] titles;
    private List<TextView> textViewList;

    @Nullable

    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.zhuye_layout, container, false);
        //初始化控件
        hsview = view.findViewById(R.id.hsview);
        linear_layout = view.findViewById(R.id.linear_layout);
        zhuye_viewpager = view.findViewById(R.id.zhuye_viewpager);
        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        titles = new String[]{"头条", "社会", "国内"};
        MyViewPagerAdapter viewPagerAdapter = new MyViewPagerAdapter(getActivity().getSupportFragmentManager(), titles);
        zhuye_viewpager.setAdapter(viewPagerAdapter);
        //创建集合
        textViewList = new ArrayList<>();
        for (int i = 0; i < titles.length; i++) {
            TextView textView = new TextView(getActivity());
            textView.setText(titles[i]);
            textView.setTextSize(20);
            textView.setTextColor(Color.BLACK);
            textView.setId(i + 100);
            textView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    int id = v.getId();
                    zhuye_viewpager.setCurrentItem(id - 100);
                }
            });
            if (i == 0) {
                textView.setTextColor(Color.BLACK);
            } else {
                textView.setTextColor(Color.WHITE);
            }
            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            layoutParams.setMargins(10, 10, 10, 10);
            linear_layout.addView(textView, layoutParams);
            textViewList.add(textView);

        }
        zhuye_viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i1) {
            }

            @Override
            public void onPageSelected(int i) {
                for (int j = 0; j < textViewList.size(); j++) {
                    if (j == i) {
                        textViewList.get(j).setTextColor(Color.BLACK);
                    } else {
                        textViewList.get(j).setTextColor(Color.WHITE);
                    }
                }
                TextView textView = textViewList.get(i);
                int width = textView.getWidth() + 10;
                hsview.scrollTo(width * i, 0);
            }

            @Override
            public void onPageScrollStateChanged(int i) {

            }
        });
    }
}

网络请求

public class MainFragment extends Fragment implements XListView.IXListViewListener {


    private String title;
    String url1 = "tt";
    private String data;
    private XListView xListView;
    private MyXlistAdapter xlistAdapter;
    private float scaledTouchSlop;
    private Toolbar toolbar;
    private ObjectAnimator mAnimator;
    private MyDate myDate;
    private Toolbar tool_bar;
    String mapth = "http://result.eolinker.com/k2BaduF2a6caa275f395919a66ab1dfe4b584cc60685573?uri=" + url1 + "";
    public static Fragment getinstance(String title) {

        MainFragment fragment = new MainFragment();
        Bundle bundle = new Bundle();
        bundle.putString("title", title);
        fragment.setArguments(bundle);
        return fragment;
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        Bundle arguments = getArguments();
        title = arguments.getString("title");
       /* TextView textView = new TextView(getActivity());
        textView.setText(title);*/
        xListView = new XListView(getActivity());
        xListView.setPullLoadEnable(true);
        xListView.setPullRefreshEnable(true);
        xListView.setXListViewListener(this);
        if (xListView.getCheckedItemPosition() == 0) {
            xListView.setDividerHeight(0);
        } else {
            xListView.setDividerHeight(20);
        }
        if (title.equals("头条") || title.equals("每日推荐")) {
            url1 = "tt";
        }
        if (title.equals("社会") || title.equals("干货定制")) {
            url1 = "shehui";
        }
        if (title.equals("国内") || title.equals("福利")) {
            url1 = "gn";
        }
        return xListView;
    }
    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        xListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent intent = new Intent(getActivity(),WebActivity.class);
                intent.putExtra("url",myDate.getResult().getData().get(position).getUrl());
                startActivity(intent);
            }
        });
    }
    @Override
    public void onStart() {
        super.onStart();
        getData();
    }
    @Override
    public void onRefresh() {
        new Runnable() {
            @Override
            public void run() {
                getData();
            }
        }.run();
        onLoad();
    }
    @Override
    public void onLoadMore() {
        new Runnable() {
            @Override
            public void run() {
                getData();
                xlistAdapter.notifyDataSetChanged();
            }
        }.run();
        onLoad();
    }
    public void getData() {
        if (HttpConnection.getNet(getActivity())) {
            Toast.makeText(getActivity(), "网络已连接", Toast.LENGTH_SHORT).show();
            new AsyncTask().execute();
        } else {
            Toast.makeText(getActivity(), "请检查网络", Toast.LENGTH_SHORT).show();
        }
    }
    public void onLoad() {
        xListView.stopRefresh();
        xListView.stopLoadMore();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        String format = simpleDateFormat.format(new Date());
        xListView.setRefreshTime(format);
    }

    class AsyncTask extends android.os.AsyncTask<Integer, Integer, String> {
        String mapth = "http://result.eolinker.com/k2BaduF2a6caa275f395919a66ab1dfe4b584cc60685573?uri=" + url1 + "";
        @Override
        protected String doInBackground(Integer... integers) {
            return HttpUrlUtil.getHttp(getActivity(), mapth, "GET");
        }
        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Gson gson = new Gson();
            myDate = gson.fromJson(s, MyDate.class);
            if (myDate != null) {
                xlistAdapter = new MyXlistAdapter(getActivity(), myDate);
                xListView.setAdapter(xlistAdapter);
            }
        }
    }
}

adapter

public class MyViewPagerAdapter extends FragmentPagerAdapter {
    private String titles[];

    public MyViewPagerAdapter(FragmentManager fm, String[] titles) {
        super(fm);
        this.titles = titles;
    }

    @Override
    public Fragment getItem(int i) {
        return MainFragment.getinstance(titles[i]);
    }

    @Override
    public int getCount() {
        return titles.length;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43882999/article/details/85113306