伪今日头条

布局

<LinearLayout
    android:id="@+id/fragmentoneliner"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:orientation="horizontal"
     >
    <HorizontalScrollView
        android:id="@+id/hs"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="9"
        >
        <LinearLayout
            android:id="@+id/fragment_one_liner01"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            >

        </LinearLayout>
    </HorizontalScrollView>
    <ImageView
        android:id="@+id/hs_Imageview"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:background="@drawable/detail_subscribe_night"
        android:layout_weight="1"
        android:drawableTint="#fff"
        />


</LinearLayout>
<android.support.v4.view.ViewPager
    android:id="@+id/viewfragment_one"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    >

</android.support.v4.view.ViewPager>
 
 



public class FragmentOne extends Fragment {
    private ImageView imageView;
    private HorizontalScrollView hs;
    private LinearLayout li;
    private ViewPager viewPager;
    private List<TextView> list;
    private ArrayList<ChannelBean> channelBeans;
    private String jsonStr;
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragmentone,container,false);
        //获得组件
        initview(view);
        return view;
    }
    private void initview(View view) {
        imageView = view.findViewById(R.id.hs_Imageview);
        hs =    view.findViewById(R.id.hs);
        li = view.findViewById(R.id.fragment_one_liner01);
        viewPager = view.findViewById(R.id.viewfragment_one);
        //获得数据
        initdata();
    }
    private void initdata() {
        list = new ArrayList<>();
        channelBeans = new ArrayList<>();
        //"头条", "娱乐", "科技", "信息", "八卦", "北京", "上海", "天津","重庆", "大大燕网"
        channelBeans.add(new ChannelBean("头条",true));
        channelBeans.add(new ChannelBean("娱乐",true));
        channelBeans.add(new ChannelBean("科技",true));
        channelBeans.add(new ChannelBean("信息",true));
        channelBeans.add(new ChannelBean("八卦",true));
        channelBeans.add(new ChannelBean("北京",true));
        channelBeans.add(new ChannelBean("上海",false));
        channelBeans.add(new ChannelBean("天津",false));
        channelBeans.add(new ChannelBean("重庆",false));
        channelBeans.add(new ChannelBean("大大燕网",false));

        for (int i = 0; i <channelBeans.size() ; i++) {
            TextView textView = new TextView(getActivity());
            textView.setText(channelBeans.get(i).getName());
            textView.setTextSize(20);
            textView.setId(i+1000);

            //点击换页
            textView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    int id = view.getId();
                    viewPager.setCurrentItem(id-1000);
                }
            });

            //判断颜色
            if (i == 0 ){
                textView.setTextColor(Color.RED);
            }else {
                textView.setTextColor(Color.BLACK);
            }

            if(channelBeans.get(i).isSelect()){
                textView.setVisibility(View.VISIBLE);
            }else {
                textView.setVisibility(View.GONE);
            }
            //添加linear
            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
            layoutParams.setMargins(20,10,20,10);
            li.addView(textView,layoutParams);

            //添加集合
            list.add(textView);
        }
            viewPager.setAdapter(new MyAdapter(getActivity().getSupportFragmentManager()));
            viewPager.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=list.get(position);
                    int width = textView.getWidth()+10;
                    hs.scrollTo(width*position,0);
                }

                @Override
                public void onPageSelected(int position) {

                }

                @Override
                public void onPageScrollStateChanged(int state) {

                }
            });
            imageView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (jsonStr == null){
                        ChannelActivity.startChannelActivity((AppCompatActivity) getActivity(),channelBeans);
                    }else {
                        ChannelActivity.startChannelActivity((AppCompatActivity) getActivity(),jsonStr);
                    }

                }
            });
    }
    //内部类适配器
   private class MyAdapter extends FragmentPagerAdapter {
        public MyAdapter(FragmentManager fm) {
            super(fm);
        }

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

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

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode==ChannelActivity.REQUEST_CODE&&resultCode==ChannelActivity.RESULT_CODE) {
            jsonStr = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY);
        }
    }
}


猜你喜欢

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