zoukankan      html  css  js  c++  java
  • ScrollView横向滑动与fragment的联动

    package com.bwie.test.zhangyajie20160321;

    import java.util.ArrayList;
    import java.util.List;

    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.FragmentManager;
    import android.support.v4.view.ViewPager;
    import android.support.v4.view.ViewPager.OnPageChangeListener;
    import android.view.View;
    import android.widget.HorizontalScrollView;
    import android.widget.LinearLayout;
    import android.widget.TextView;

    import com.bwie.test.adapter.Adapter;
    import com.bwie.test.fragment.F1;
    import com.ce.zhangyajie20160321.R;

    public class MainActivity extends FragmentActivity {
        String[] strs = { "舍内要闻", "本社介绍", "履行职能", "自身建设", "社员风采", "历史回眸" };
        private LinearLayout ll;
        private HorizontalScrollView sv;
        private ViewPager vp;
        int s = 0;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            // 初始化控件
            initView();
            // 设置横向滑动
            setScrollView();
            // 设置viewpager
            setViewPager();
        }

        // 设置viewpager
        private void setViewPager() {

            // 得到管理者
            FragmentManager fm = getSupportFragmentManager();

            // 创建集合
            List<Fragment> list = new ArrayList<Fragment>();
            for (int i = 0; i < strs.length; i++) {

                F1 f1 = new F1();

                String url = "http://www.93.gov.cn/93app/data.do?channelId=2&&startNum="
                        + i;
                Bundle bundle = new Bundle();
                bundle.putString("url", url);
                f1.setArguments(bundle);
                list.add(f1);
            }
            vp.setAdapter(new Adapter(fm, list));

            // 给viewpager设置监听
            vp.setOnPageChangeListener(new OnPageChangeListener() {

                public void onPageSelected(int arg0) {
                    // 设置滑动字体的变化
                    setTextColor(arg0);

                }

                public void onPageScrolled(int arg0, float arg1, int arg2) {
                    // TODO Auto-generated method stub

                }

                public void onPageScrollStateChanged(int arg0) {
                    // TODO Auto-generated method stub

                }
            });

        }

        // 设置字体
        private void setTextColor(int position) {
            for (int i = 0; i < strs.length; i++) {

                // 得到所有的textview
                TextView tt = (TextView) ll.getChildAt(i);
                // 得到当前对应的textview
                TextView t = (TextView) ll.getChildAt(position);

                t.setTextColor(Color.RED);
                if (!tt.equals(t)) {

                    tt.setTextColor(Color.BLACK);
                }

                for (int j = 0; j < strs.length; j++) {
                    // 得到屏幕宽度
                    int width = getWindowManager().getDefaultDisplay().getWidth();
                    int left = t.getLeft();
                    int width2 = t.getWidth();
                    sv.smoothScrollTo(left + width2 / 2 - width / 2, 0);
                }
            }

        }

        // 设置横向滑动
        @SuppressWarnings("deprecation")
        private void setScrollView() {

            for (int i = 0; i < strs.length; i++) {

                // 创建Textview
                TextView textView = new TextView(this);

                if (s == i) {
                    textView.setTextColor(Color.RED);
                }
                textView.setText(strs[i]);
                textView.setPadding(20, 20, 20, 20);
                ll.addView(textView);

            }

        }

        private void initView() {
            // 找到控件
            ll = (LinearLayout) findViewById(R.id.ll);
            sv = (HorizontalScrollView) findViewById(R.id.sv);
            vp = (ViewPager) findViewById(R.id.vp);

        }

    }

    xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity" >

        <HorizontalScrollView
            android:id="@+id/sv"
            android:layout_width="match_parent"
            android:layout_height="50dp" >

            <LinearLayout
                android:id="@+id/ll"
                android:layout_width="match_parent"
                android:layout_height="50dp" >
            </LinearLayout>
        </HorizontalScrollView>

        <android.support.v4.view.ViewPager
            android:id="@+id/vp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
        </android.support.v4.view.ViewPager>

    </LinearLayout>

  • 相关阅读:
    初賽
    SA
    高斯-约旦消元法
    AC自动机
    KMP
    关于scanf
    网络流
    常用SQL语句
    Java开发中的23种设计模式详解(转)
    generatorConfig.xml
  • 原文地址:https://www.cnblogs.com/weiyangge/p/5344202.html
Copyright © 2011-2022 走看看