对fragment和ayer-list 的一起使用z

public class MainActivity extends FragmentActivity implements OnClickListener {

//    private static final String String = null;
    private myPageAdapter amyPageAdapter;
    private ViewPager vp;
    private LinearLayout ll;
    private String[] data=new String[]{"舍内要闻","本社建设","履行职能","自身建设","社员风采","历史回眸"};
    private HorizontalScrollView hl;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
         vp = (ViewPager) findViewById(R.id.vp);
         ll = (LinearLayout) findViewById(R.id.ll);
         for (int i = 0; i < data.length; i++) {                
             TextView tv = genetateTextView(data[i]);
             tv.setId(i);
             ll.addView(tv);
             tv.setOnClickListener(this);  
         }
        
         hl = (HorizontalScrollView) findViewById(R.id.hl);
    
         FragmentManager fragmentManager=getSupportFragmentManager();
         amyPageAdapter = new myPageAdapter(fragmentManager);
         vp.setAdapter(amyPageAdapter);
         vp.setCurrentItem(0);
         changeTitleView(0);    
         vp.setOnPageChangeListener(new OnPageChangeListener() {
            
            @Override
            public void onPageSelected(int arg0) {    
                changeTitleView(arg0);        
            }
            
            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                // TODO Auto-generated method stub
                myscroll(arg0,arg1);
                
            }
            
            @Override
            public void onPageScrollStateChanged(int arg0) {
                
                
            }
           });
        
    }
    
    protected void changeTitleView(int arg0) {
        for (int i = 0; i < ll.getChildCount(); i++) {
            TextView tv =(TextView) ll.getChildAt(i);
            if(arg0==i){
                 tv.setBackgroundResource(R.drawable.mylayer_list);
            }else{
                 tv.setBackgroundResource(R.drawable.writelayer);
            }
        
        }
        
    }

    //指示器跟随手指进行滚动
    public void myscroll(int position, float offset) {
       int tabWidth = getScreenWidth()/3;
       int mTranslationX = (int) (tabWidth*(offset+position));
       int mTabVisibleCount=data.length;
       //但移动到倒数第二个的时候
       //容器移动,当tab处于移动至最后一个时
       if(position>=1&&offset>0){
           //在mTabVisibleCount是1的时候
//           mTabVisibleCount-2  是要用到
           if(mTabVisibleCount != 1&&position!=mTabVisibleCount-2){               
//                 Toast.makeText(this, "进行移动"+position, 1).show();
                 System.out.println(position+"_------");
                 ll.scrollTo((position-1)*tabWidth+(int)(tabWidth*offset),0);
           }       
        
       }
//       进行重绘画
       ll.invalidate();
    }

    private TextView genetateTextView(String title) {
        TextView tv = new TextView(this);
        LinearLayout.LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
        lp.width = getScreenWidth()/3;
        lp.height=100;
        tv.setText(title);
        tv.setGravity(Gravity.CENTER);
        tv.setTextSize(16f);
        tv.setLayoutParams(lp);
        return tv;      
        
    }

    //获得屏幕的宽度
    private int getScreenWidth() {
        WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
        DisplayMetrics outMetrics = new DisplayMetrics();
        //通过WindowManager获得
        wm.getDefaultDisplay().getMetrics(outMetrics);
        //返回屏幕的宽度
        return outMetrics.widthPixels;
    }
    
    class myPageAdapter extends FragmentPagerAdapter{

        public myPageAdapter(FragmentManager fm) {
            super(fm);
            
        }

        @Override
        public Fragment getItem(int arg0) {
            MyFrag my=new MyFrag();
            return my;
        }

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return data.length;
        }
    }

    @Override
    public void onClick(View v) {        
            int id = v.getId();
            
              for (int i = 0; i < ll.getChildCount(); i++) {
                TextView tv =(TextView) ll.getChildAt(i);
                int tvId = tv.getId();
                if(tvId==id){
                       tv.setBackgroundResource(R.drawable.mylayer_list);
                       vp.setCurrentItem(i);
                }else{
                     tv.setBackgroundResource(R.drawable.writelayer);
                }
            
            }        


    }



    

}




---------------------------------------------------------

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!--         <item >
        <shape >       
            <solid android:color="#ff0000"/>
        </shape>
        
         </item> -->
    
    <item android:top="45dp">       
        <shape >
            <solid android:color="#000000"/>
            <padding android:left="5dp"
                android:top="5dp"
                android:right="5dp"
                android:bottom="3dp"/>
        </shape>
        
    </item>

</layer-list>


----------------baide

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    
    <item >
        <shape >            
            <solid android:color="#FFFFFF"/>
        </shape>
        
    </item>

</layer-list>











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值