布局

<LinearLayout  ns:android=\"http://schemas.android.com/apk/res/android\"
    android:layout_width=\"match_parent\"
    android:layout_height=\"match_parent\"
    android:background=\"#fffff0\"
    android:orientation=\"vertical\">

   

    <RelativeLayout
        android:layout_width=\"wrap_content\"
        android:layout_height=\"wrap_content\">

        <RelativeLayout
            android:id=\"@+id/hsview\"
            android:layout_width=\"match_parent\"
            android:layout_height=\"wrap_content\" />

        <HorizontalScrollView
            android:id=\"@+id/fhsv\"
            android:layout_width=\"match_parent\"
            android:layout_height=\"wrap_content\"
            android:background=\"@color/app_color\">

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

        <RelativeLayout
            android:id=\"@+id/vp\"
            android:layout_width=\"match_parent\"
            android:layout_height=\"wrap_content\">

            <android.support.v4.view.ViewPager
                android:id=\"@+id/fViewPager\"
                android:layout_width=\"match_parent\"
                android:layout_height=\"wrap_content\"
                android:layout_marginTop=\"83dp\"
                android:background=\"@color/colorAccent\" />
        </RelativeLayout>
    </RelativeLayout>
</LinearLayout>

代码

private ViewPager fViewPager;
private String[]  s;
private ArrayList<TextView> list;
private LinearLayout linearlayout;
private HorizontalScrollView fhsv;
private DrawerLayout hDrawerLayout;
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.frag_01, container, false);
    //获取控件
    fViewPager = view.findViewById(R.id.fViewPager);
    linearlayout = (LinearLayout) view.findViewById(R.id.linearlayout);
    fhsv = view.findViewById(R.id.fhsv);
    //创建数组,存放标题
         s = new String[]{\"头条\", \"娱乐\", \"科技\"};
        fViewPager.setAdapter(new ViewPageAdapter(getActivity().getSupportFragmentManager(),  s));
        //创建集合,存放textview
        list = new ArrayList<TextView>();
        for (int i = 0; i <  s.length; i++) {
            //创建textview
            TextView textView = new TextView(getActivity());
            textView.setText( s[i]);
            textView.setTextSize(20);
            textView.setTextColor(Color.rgb(250, 250, 250));
            textView.setId(i + 20);
            //点击事件
            textView.set Listener(new View. Listener() {
                @Override
                public void  (View view) {
                    int id = view.getId();
                    fViewPager.setCurrentItem(id - 20);
                }
            });
            //刚进程序第一个默认红色,其他为黑色
            if (i == 0) {
                textView.setTextColor(Color.WHITE);
            } else {
                textView.setTextColor(Color.WHITE);
            }
            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            layoutParams.setMargins(20, 40, 20, 40);
            //添加到布局中
            linearlayout.addView(textView, layoutParams);
            //添加到集合
            list.add(textView);
        }
        fViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float v, int i1) {
                //list中存的是 textview
                for (int i = 0; i < list.size(); i++) {
                    if (position == i) {
                        list.get(i).setTextColor(getResources().getColor(R.color.app_r));
                    } else {
                        list.get(i).setTextColor(getResources().getColor(R.color.app_w));
                    }
                }
                //获取当前的textview
                TextView textView = list.get(position);
                //width是每次滑动的距离
                int width = textView.getWidth() + 10;
                //让scrollView滑动   滑动距离是textview之间的间距
                fhsv.scrollTo(width * position, 0);
            }

            @Override
            public void onPageSelected(int i) {

            }

            @Override
            public void onPageScrollStateChanged(int i) {

            }
        });
        return view;
    }
}

 

代码中需要的那几个类

public class ViewPageAdapter extends FragmentPagerAdapter {
    String[]  s;

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

    //当前fragment
    @Override
    public Fragment getItem(int i) {
        return MainFragment.getinstance( s[i]);
    }

    //fragment 数量
    @Override
    public int getCount() {
        return  s.length;
    }
}


代码中的MainFragment
public class MainFragment extends Fragment implements XListView.IXListViewListener {
    int page = 1;
    private XListView listView;
    private String uri = \"tt\";
    private MyListAdapter myListAdapter;

    public static Fragment getinstance(String  ) {
        //创建Fragment1
        MainFragment fragment1 = new MainFragment();
        //创建bundle
        Bundle bundle = new Bundle();
        //添加值
        bundle.putString(\" \",  );
        //把值添加到Arguments中
        fragment1.setArguments(bundle);
        return fragment1;
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        //获取Arguments
        Bundle arguments = getArguments();
        //获取值
        String   = arguments.getString(\" \");
        //创建ListView
        listView = new XListView(getActivity());
        //设置值

        if ( .equals(\"头条\")) {
            uri = \"tt\";
            new MyAsync().execute();
        } else if ( .equals(\"娱乐\")) {
            uri = \"shehui\";
            new MyAsync().execute();
        } else if ( .equals(\"科技\")) {
            uri = \"gn\";
            new MyAsync().execute();
        }
        return listView;
    }

    //加载更多跟刷新
    @Override
    public void onRefresh() {
        page = 1;
        new Runnable() {
            @Override
            public void run() {
                new MyAsync().execute();
                myListAdapter.notifyDataSetChanged();
            }
        }.run();
        onlod();
    }

    //加载更多
    @Override
    public void  More() {
        page++;
        new Runnable() {
            @Override
            public void run() {
                new MyAsync().execute();
                myListAdapter.notifyDataSetChanged();
            }
        }.run();
        onlod();
    }

    //这个是必须的ListView刷新
    private void onlod() {
        listView.stopRefresh();
        listView.stopLoadMore();
        //上次刷新的时间
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(\"yyyy年MM月dd日   HH:mm:ss\");
        Date date = new Date(System.currentTimeMillis());
        listView.setRefreshTime(simpleDateFormat.format(date));
    }


    class MyAsync extends AsyncTask<Integer, Integer, String> {
        String url = \"http://result.eo er.com/k2BaduF2a6caa275f395919a66ab1dfe4b584cc60685573?uri=\" + uri + \"\";

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            listView.setPullLoadEnable(true);
            listView.setPullRefreshEnable(true);
            listView.setXListViewListener(MainFragment.this);
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            if (s != null) {
                Gson gson = new Gson();
                MylistBean mylistBean = gson.fromJson(s, MylistBean.class);
                List<MylistBean.ResultBean.DataBean> data = mylistBean.getResult().getData();
                myListAdapter = new MyListAdapter(getActivity(), data);
                listView.setAdapter(myListAdapter);
            }
        }

        @Override
        protected String doInBackground(Integer... integers) {
            return HttpUtils.getHttpCon(getActivity(), url, \"GET\");
        }
    }
}
收藏 打印