HorizontalScrollView横向滑动

来源:互联网 发布:第四方支付钱包源码 编辑:程序博客网 时间:2024/05/21 11:21

//废话不多说直接上代码,想必有点基础的应该一看就懂吧=.=

//首先就是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;    }}
//这是代码效果图希望可以帮助到各位



阅读全文
2 0