<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="bbb.bwie.com.horizontal_viewpager_frament.MainActivity"> <HorizontalScrollView android:id="@+id/hs" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="30dip"> <LinearLayout android:id="@+id/showtitle" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > </LinearLayout> </HorizontalScrollView> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v4.view.ViewPager> </LinearLayout>import android.graphics.Color; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.PagerTabStrip; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.HorizontalScrollView; import android.widget.LinearLayout; import android.widget.TextView; import java.util.ArrayList; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private LinearLayout show; private HorizontalScrollView hs; private ViewPager vp; private String[] titles; private ArrayList<TextView> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); show = (LinearLayout) findViewById(R.id.showtitle); hs = (HorizontalScrollView) findViewById(R.id.hs); vp = (ViewPager) findViewById(R.id.vp); titles = new String[]{"头条", "社会", "国内", "国际", "娱乐", "体育", "军事", "科技", "财经", "时尚"}; list = new ArrayList<TextView>(); for(int i=0;i<titles.length;i++){ //for循环放入textview TextView view = new TextView(this);//自定义一个textview view.setText(titles[i]);//把数组的内容放入textview控件 view.setTextSize(20);//设置字体的大小 if(i==0){//设置刚进入的字体颜色 view.setTextColor(Color.RED); }else{ view.setTextColor(Color.BLACK); } view.setOnClickListener(this);//textview控件的点击事件 view.setId(i+1000); //设置textview控件的宽高 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); params.setMargins(20,10,20,10);//设置内边距 show.addView(view,params);//将textview控件添加到滚动控件里面的LinearLayout布局 list.add(view);//添加到集合 } vp.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { return fragment.getin(list.get(position).getText().toString()); } @Override public int getCount() { return titles.length; } }); 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<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();//获取宽度 //计算该滑到哪里 hs.scrollTo((width+20)*position,0);//viewpager滑动时与滚动控件想配合一起滑动 } @Override public void onPageScrollStateChanged(int state) { } }); } @Override public void onClick(View view) { int id = view.getId(); vp.setCurrentItem(id-1000); } }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.TextView; /** * 作者:刘雄彪 */ public class fragment extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { Bundle arguments = getArguments(); String sss = arguments.getString("sss"); TextView textView = new TextView(getActivity()); textView.setText(sss); return textView; } public static Fragment getin(String titles){ fragment fragment0 = new fragment(); Bundle bundle = new Bundle(); bundle.putString("sss",titles); fragment0.setArguments(bundle); return fragment0; } }
Horizontal_ViewPager_Fragment
最新推荐文章于 2023-03-07 17:29:07 发布