<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();
}
}