您的位置:首页 > 其它

横向菜单——HorizontalScrollView

2016-03-13 20:08 288 查看
private void setNav() {

     //获取宽度

        DisplayMetrics metrics = new DisplayMetrics();

        getWindowManager().getDefaultDisplay().getMetrics(metrics);

        screenwidth= metrics.widthPixels;    

        

        itemwidth=screenwidth/MyTools.getType().size();

        for (int i = 0; i < MyTools.getType().size(); i++) {

            LayoutParams params = new LinearLayout.LayoutParams(itemwidth,RadioGroup.LayoutParams.WRAP_CONTENT);

            params.leftMargin=15;

            params.rightMargin=15;

            

            

            //创建textview

            TextView localtextview = new TextView(this);

            localtextview.setText(MyTools.getType().get(i));//设置textview的text

            localtextview.setTextSize(16.0f);//设置字体大小

            localtextview.setBackgroundResource(R.drawable.nab_bg);//设置背景

            localtextview.setPadding(5, 15, 5, 15);//设置内边矩

            localtextview.setGravity(Gravity.CENTER);//设置居中

            if(itemwidthIndex==i){

                localtextview.setSelected(true);

            }

            localtextview.setOnClickListener(new View.OnClickListener() {

                

                @Override

                public void onClick(View v) {

                    for (int j = 0; j < MyTools.getType().size(); j++) {

                        TextView tv = (TextView) nav_ll.getChildAt(j);//获取linearlaout中的控件

                        if(tv==v){

                            tv.setSelected(true);

                            nav_vp.setCurrentItem(j);

                        }else{

                            tv.setSelected(false);

                        }

                    }

                    

                }

            });

            nav_ll.addView(localtextview, i, params);

        }

        

    }

private void selectType(int position) {

        itemwidthIndex=position;

        for (int i = 0; i < nav_ll.getChildCount(); i++) {

            TextView tv0 = (TextView)nav_ll.getChildAt(position);

            int k = tv0.getMeasuredWidth();

            int l = tv0.getLeft();

            int i2 = l + k / 2 - screenwidth / 2;// 计算要滚动到的位置

            hsv.smoothScrollTo(i2, 0);

        }

        for (int i = 0; i < nav_ll.getChildCount(); i++) {

            View view = nav_ll.getChildAt(i);

            if (position == i) {

                view.setSelected(true);

            } else {

                view.setSelected(false);

            }

        }

    }

//布局文件

 <LinearLayout

        android:layout_width="wrap_content"

        android:layout_height="0dp"

        android:layout_weight="0.5"

        android:orientation="horizontal">

        <HorizontalScrollView

            android:id="@+id/horizonscrollview"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content">

            <LinearLayout

                android:id="@+id/nav_ll"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:orientation="horizontal">

                

            </LinearLayout>

        </HorizontalScrollView>

    </LinearLayout>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: