您的位置:首页 > 其它

HorizontalScrollView+ViewPager导航栏

2018-01-12 10:51 239 查看
//主页面

package fragment;

import android.graphics.Color;

import android.os.Bundle;

import android.support.annotation.Nullable;

import android.support.design.widget.TabLayout;

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.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.HorizontalScrollView;

import android.widget.LinearLayout;

import android.widget.TextView;

import com.example.lx123000.R;

import java.lang.reflect.Array;

import java.util.ArrayList;

import java.util.List;

import fage.MyFragment;

import fage.MyFragment01;

import fage.MyFragment02;

/**

 * Created by Administrator on 2017/12/30/030.

 */

public class Fragment02 extends Fragment implements View.OnClickListener{

    String path = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";

    private ViewPager vp;

    private LinearLayout ll;

    private HorizontalScrollView hs;

    private String[] strings;

    private List<TextView> al;

    private ArrayList<Fragment> fragments = new ArrayList<>();

    private MyFragment01 fragment01;

    private MyFragment02 fragment02;

    @Nullable

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

        View view = inflater.inflate(R.layout.fragment02, container, false);

        vp = view.findViewById(R.id.vp);

        ll = view.findViewById(R.id.ll);

        hs = view.findViewById(R.id.hsv);

        strings = new String[]{"头条", "娱乐", "科技", "信息", "八卦", "北京", "上海", "天津",

                "重庆", "大大燕网"};

        init();

        for (int i = 0; i < 2; i++) {

            MyFragment myFragment = new MyFragment();

            //传值

            Bundle bundle = new Bundle();

            bundle.putString("title",path+(i+1));

            myFragment.setArguments(bundle);

            fragments.add(myFragment);

        }

        fragment01 = new MyFragment01();

        fragment02 = new MyFragment02();

        fragments.add(fragment01);

        fragments.add(fragment02);

        vp.setAdapter(new FragmentPagerAdapter(getActivity().getSupportFragmentManager()) {

            @Override

            public Fragment getItem(int position) {

                return fragments.get(position);

            }

            @Override

            public int getCount() {

                return fragments.size();

            }

        });

        into();

        return view;

    }

    private void into() {

        vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override

            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override

            public void onPageSelected(int position) {

                for (int i = 0; i < fragments.size(); i++) {

                    if (i == position) {

                        al.get(i).setTextColor(Color.RED);

                    }else{

                        al.get(i).setTextColor(Color.BLACK);

                    }

                }

//                int width = al.get(0).getWidth();

//                hs.scrollTo((width+20)*position,0);

            }

            @Override

            public void onPageScrollStateChanged(int state) {

            }

        });

    }

    private void init() {

        al = new ArrayList<>();

        for (int i = 0; i < strings.length; i++) {

            TextView tv = new TextView(getActivity());

            tv.setText(strings[i]);

            tv.setTextSize(24);

            if (i== 0) {

                tv.setTextColor(Color.RED);

            }

            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);

            layoutParams.setMargins(10,10,10,20);

            tv.setId(i);

            tv.setOnClickListener(this);

            al.add(tv);

            ll.addView(tv,layoutParams);

        }

    }

    @Override

    public void onClick(View view) {

        int id = view.getId();

        vp.setCurrentItem(id);

    }

}

//接受数据页面

package fage;

import android.annotation.SuppressLint;

import android.os.AsyncTask;

import android.os.Bundle;

import android.support.annotation.Nullable;

import android.support.v4.app.Fragment;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.ListView;

import android.widget.TextView;

import com.example.lx123000.R;

import com.google.gson.Gson;

import java.util.List;

import adapter.MyAdapter;

import bean.SuperClass;

import url.GetURL;

/**

 * Created by Administrator on 2018/1/3/003.

 */

public class MyFragment extends Fragment {

    String path;

    private ListView lv;

    private TextView tv;

    private List<SuperClass.DataBean> list;

    @Nullable

    @Override

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

        View view = inflater.inflate(R.layout.myfragment_item, container, false);

        Bundle bundle = getArguments();

        lv = view.findViewById(R.id.lv);

        tv = view.findViewById(R.id.tv);

        path=bundle.getString("title");

        new AsyncTask<String, String, String>() {

            @Override

            protected String doInBackground(String... strings) {

                String data = GetURL.getData(path);

                return data;

            }

            @Override

            protected void onPostExecute(String s) {

                super.onPostExecute(s);

                Gson gson = new Gson();

                SuperClass superClass = gson.fromJson(s, SuperClass.class);

                list = superClass.getData();

                lv.setAdapter(new MyAdapter(list,getActivity()));

            }

        }.execute();

        return view;

    }

}

//接受页面布局

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

    android:orientation="vertical"

    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"

    android:layout_height="match_parent">

    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:id="@+id/tv"/>

<ListView

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:id="@+id/lv"></ListView>

</LinearLayout>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: