横向滑动菜单, HorizontalScrollView,fragment,Viewpager结合使用

来源:互联网 发布:excel表格中重复数据 编辑:程序博客网 时间:2024/05/22 06:06

这里写图片描述

package com.wzq.scrollviewindicater;

import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;

import com.wzq.scrollviewindicater.fragment.Fragment0;

import java.util.ArrayList;

public class MainActivity extends FragmentActivity implements OnClickListener {

private LinearLayout ll_head;private ViewPager viewPager;private String[] titles;private ArrayList<TextView> textViewList;private HorizontalScrollView horizontalScrollView;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    ll_head = (LinearLayout) findViewById(R.id.ll_head);    horizontalScrollView = (HorizontalScrollView) findViewById(R.id.hsv);    viewPager = (ViewPager) findViewById(R.id.viewpager);    titles = new String[] { "头条", "娱乐", "科技", "信息", "八卦", "北京", "上海", "天津",            "重庆", "大大燕网" };    textViewList = new ArrayList<TextView>();    // dp转成px 工具类    for (int i = 0; i < titles.length; i++) {        TextView textView = new TextView(this);        textView.setText(titles[i]);        // textView.setWidth(100);        textView.setTextSize(20);        if (i == 0) {            textView.setTextColor(Color.RED);        } else {            textView.setTextColor(Color.BLACK);        }        // 顺便点击事件        textView.setOnClickListener(this);        // 定义id        textView.setId(i + 10000);        LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,                LayoutParams.WRAP_CONTENT);        params.setMargins(20, 10, 20, 10);        ll_head.addView(textView, params);        // 往集合中添加textView        textViewList.add(textView);    }    viewPager.setAdapter(new FragmentPagerAdapter(            getSupportFragmentManager()) {        @Override        public int getCount() {            return titles.length;        }        @Override        public Fragment getItem(int position) {            return Fragment0.getInstance(titles[position]);        }    });    viewPager.setOnPageChangeListener(new OnPageChangeListener() {        @Override        public void onPageSelected(int position) {            for (int i = 0; i < textViewList.size(); i++) {                if (position == i) {                    textViewList.get(i).setTextColor(Color.RED);                } else {                    textViewList.get(i).setTextColor(Color.BLACK);                }            }            TextView textView = textViewList.get(position);            int width = textView.getWidth();            // 计算该滑到什么位置            horizontalScrollView.scrollTo((width + 20) * position, 0);        }        @Override        public void onPageScrolled(int arg0, float arg1, int arg2) {        }        @Override        public void onPageScrollStateChanged(int arg0) {        }    });}@Overridepublic void onClick(View v) {    int id = v.getId();    viewPager.setCurrentItem(id - 10000);}

}

阅读全文
0 0
原创粉丝点击