HorizontalScrollView 2

<HorizontalScrollView
    android:id="@+id/hs"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:scrollbars="none"
    android:layout_weight="1"
    >
    <LinearLayout
        android:id="@+id/linearlayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        ></LinearLayout>

</HorizontalScrollView>



private ViewPager viewPager;
private HorizontalScrollView hs;
private LinearLayout linearLayout;
private PopupWindow pw;
private Button publish;
private ImageView login;
private String [] titles={"头条", "娱乐", "科技", "信息", "八卦", "北京", "上海", "天津","重庆", "大大燕网"};
 List<TextView> list;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View  view = inflater.inflate(R.layout.fragment_homepage,container,false);
    //主页获得组件
    homepage_insetview(view);

    return view;
}

private void homepage_insetview(View view) {
    hs  = view.findViewById(R.id.hs);
    linearLayout= view.findViewById(R.id.linearlayout);
    viewPager = view.findViewById(R.id.viewpager);
    //登录
    login = view.findViewById(R.id.home_image01);
    //发布
    publish = view.findViewById(R.id.home_btn1);

    //确定单击事件
    login.setOnClickListener(this);
    publish.setOnClickListener(this);

    list = new ArrayList<>();
    for (int i = 0; i < titles.length; i++) {
        //循环生成TextView
        TextView textView = new TextView(getActivity());
        textView.setText(titles[i]);
        textView.setTextSize(20);
        textView.setId(i+1000);

        //单击事件
        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view1) {
                int id = view1.getId();
                viewPager.setCurrentItem(id-1000);
            }
        });
        //刚进程序第一个默认红色,其他为黑色
        if(i==0){
            textView.setTextColor(Color.RED);
        }else {
            textView.setTextColor(Color.BLACK);
        }
        //加载linearlayout 布局
        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
        //linearlayout的间距
        layoutParams.setMargins(50,10,50,10);
        //添加到布局中
        linearLayout.addView(textView,layoutParams);

        //添加到集合中
        list.add(textView);
    }
    //创建适配器
    viewPager.setAdapter(new MyAdapter(getActivity().getSupportFragmentManager()));
    //viewPager监听
    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        //滑动改变颜色
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                //list中存的是 textview
            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);
            //width是每次滑动的距离
            int width = textView.getWidth()+100;
            //让scrollView滑动   滑动距离是textview之间的间距
            hs.scrollTo(width*position,0);

        }

        @Override
        public void onPageSelected(int position) {

        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

}
//单击事件
@Override
public void onClick(View v) {
    switch (v.getId()){
        case R.id.home_image01:
            Intent intent  = new Intent(getActivity(), LoginActivity.class);
            startActivity(intent);
            break;
        case R.id.home_btn1:
            View popupwindow = View.inflate(getActivity(),R.layout.popupwindow,null);
            pw = new PopupWindow(popupwindow, 250, 150);
            //设置是否被点击
            pw.setFocusable(true);
            //点击其他地方关闭
            pw.setOutsideTouchable(true);
            //给PopupWindow设置
            pw.setBackgroundDrawable(new ColorDrawable(Color.WHITE));
            //展示
            pw.showAsDropDown(publish,10,10, Gravity.BOTTOM);

            break;
    }
}

class MyAdapter extends FragmentPagerAdapter {

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

    @Override
    public Fragment getItem(int position) {
        return Fragment_one.getInstance(list.get(position).getText().toString());
    }

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

猜你喜欢

转载自blog.csdn.net/qq_41663420/article/details/80794361