HorizontalScrollView横向滑动
//废话不多说直接上代码,想必有点基础的应该一看就懂吧=.=
//首先就是MainActivity的布局
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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" android:orientation="vertical" tools:context="com.bwie.yk.MainActivity"> <LinearLayout android:id="@+id/lin" android:layout_width="match_parent" android:layout_height="wrap_content"> <HorizontalScrollView android:id="@+id/hsv" android:layout_width="wrap_content" android:layout_height="wrap_content"> <LinearLayout android:id="@+id/ll_head" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> </LinearLayout> </HorizontalScrollView> </LinearLayout> <android.support.v4.view.ViewPager android:layout_below="@id/lin" android:id="@+id/viewpage" android:layout_width="wrap_content" android:layout_height="wrap_content" > </android.support.v4.view.ViewPager> </RelativeLayout>//接着就是MainActivity了
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private LinearLayout ll_head; private HorizontalScrollView hsv; private String[] titles; private List<TextView> texts; private ViewPager pager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); titles=new String[]{"频道1","频道2","频道3","频道4","频道5","频道6","频道7","频道8","频道9","频道10"}; getID(); texts=new ArrayList<>(); for (int i=0;i<titles.length;i++){ TextView textView=new TextView(this); texts.add(textView); //给控件设置文字 textView.setText(titles[i]); //给空间设置字体大小 textView.setTextSize(20); textView.setTextColor(Color.BLACK); if(i==0){ textView.setTextColor(Color.RED); } textView.setId(i); //初始化一个配置参数 LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT); //给参数设置margin值 layoutParams.setMargins(20,10,20,10); textView.setOnClickListener(this); //把参数摆放的参数设置近期 ll_head.addView(textView,layoutParams); } pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { return MFragment.newInstance(titles[position]); } @Override public int getCount() { return titles.length; } }); //viewpage 的监听事件 pager.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<texts.size();i++){ if(i==position){ texts.get(position).setTextColor(Color.RED); }else{ texts.get(i).setTextColor(Color.BLACK); } } } @Override public void onPageScrollStateChanged(int state) { } }); } //获取控件id public void getID() { ll_head =(LinearLayout)findViewById(R.id.ll_head); hsv =(HorizontalScrollView)findViewById(R.id.hsv); pager = (ViewPager)findViewById(R.id.viewpage); } //textview点击监听,切换到对应的fragment @Override public void onClick(View v) { int id=v.getId(); pager.setCurrentItem(id); } }
//下面就是fragment的布局,在这里fragment里没放控件,各位也可以在其中添加一些其它功能
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FF0" > </RelativeLayout>
//下面是fragment
public class MFragment extends Fragment { private View view; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { if(view==null){ view = View.inflate(getActivity(), R.layout.mfragment,null); } ViewGroup group= (ViewGroup) view.getParent(); if(group!=null){ group.removeView(view); } return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } public static Fragment newInstance(String title){ MFragment fragment=new MFragment(); Bundle bundle=new Bundle(); bundle.putString("title",title); fragment.setArguments(bundle); return fragment; } }//这是代码效果图希望可以帮助到各位